home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 4 / Macwelt DVD 4.cdr / Entwickler / Mac-OS X / Pantomime / Source / LocalStore.m < prev    next >
MacBinary  |  2002-08-14  |  14.1 KB  |  [□□□□/□□□□]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Ultima 6 (music/ultima6) ext Supported
1% dexvert PC-98 Music (music/pc98Music) ext Unsupported
1% dexvert Amiga E Module (other/amigaEModule) ext Unsupported
1% dexvert ECX module (other/ecxModule) ext Unsupported
1% dexvert Maple Common Binary (other/mapleCommonBinary) ext Unsupported
1% dexvert MacBinary (archive/macBinary) fallback Supported
100% file MacBinary II, inited, Wed Aug 14 07:46:13 2002, modified Wed Aug 14 07:46:13 2002, 13844 bytes "LocalStore.m" , at 0x3694 286 bytes resource default (weak)
99% file data default
100% TrID MacBinary 2 default (weak)
100% dearkID deark: macbinary default
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[□□□□]
macFileCreator[□□□□]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0c 4c 6f 63 61 6c 53 | 74 6f 72 65 2e 6d 00 00 |..LocalS|tore.m..|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 01 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 36 14 00 | 00 01 1e b9 7f f3 85 b9 |.....6..|........|
|00000060| 7f f3 85 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 a5 2c 00 00 |........|.....,..|
|00000080| 2f 2a 0a 2a 2a 20 20 4c | 6f 63 61 6c 53 74 6f 72 |/*.** L|ocalStor|
|00000090| 65 2e 6d 0a 2a 2a 0a 2a | 2a 20 20 43 6f 70 79 72 |e.m.**.*|* Copyr|
|000000a0| 69 67 68 74 20 28 63 29 | 20 32 30 30 31 2c 20 32 |ight (c)| 2001, 2|
|000000b0| 30 30 32 0a 2a 2a 0a 2a | 2a 20 20 41 75 74 68 6f |002.**.*|* Autho|
|000000c0| 72 3a 20 4c 75 64 6f 76 | 69 63 20 4d 61 72 63 6f |r: Ludov|ic Marco|
|000000d0| 74 74 65 20 3c 6c 75 64 | 6f 76 69 63 40 53 6f 70 |tte <lud|ovic@Sop|
|000000e0| 68 6f 73 2e 63 61 3e 0a | 2a 2a 0a 2a 2a 20 20 54 |hos.ca>.|**.** T|
|000000f0| 68 69 73 20 6c 69 62 72 | 61 72 79 20 69 73 20 66 |his libr|ary is f|
|00000100| 72 65 65 20 73 6f 66 74 | 77 61 72 65 3b 20 79 6f |ree soft|ware; yo|
|00000110| 75 20 63 61 6e 20 72 65 | 64 69 73 74 72 69 62 75 |u can re|distribu|
|00000120| 74 65 20 69 74 20 61 6e | 64 2f 6f 72 0a 2a 2a 20 |te it an|d/or.** |
|00000130| 20 6d 6f 64 69 66 79 20 | 69 74 20 75 6e 64 65 72 | modify |it under|
|00000140| 20 74 68 65 20 74 65 72 | 6d 73 20 6f 66 20 74 68 | the ter|ms of th|
|00000150| 65 20 47 4e 55 20 4c 65 | 73 73 65 72 20 47 65 6e |e GNU Le|sser Gen|
|00000160| 65 72 61 6c 20 50 75 62 | 6c 69 63 0a 2a 2a 20 20 |eral Pub|lic.** |
|00000170| 4c 69 63 65 6e 73 65 20 | 61 73 20 70 75 62 6c 69 |License |as publi|
|00000180| 73 68 65 64 20 62 79 20 | 74 68 65 20 46 72 65 65 |shed by |the Free|
|00000190| 20 53 6f 66 74 77 61 72 | 65 20 46 6f 75 6e 64 61 | Softwar|e Founda|
|000001a0| 74 69 6f 6e 3b 20 65 69 | 74 68 65 72 0a 2a 2a 20 |tion; ei|ther.** |
|000001b0| 20 76 65 72 73 69 6f 6e | 20 32 2e 31 20 6f 66 20 | version| 2.1 of |
|000001c0| 74 68 65 20 4c 69 63 65 | 6e 73 65 2c 20 6f 72 20 |the Lice|nse, or |
|000001d0| 28 61 74 20 79 6f 75 72 | 20 6f 70 74 69 6f 6e 29 |(at your| option)|
|000001e0| 20 61 6e 79 20 6c 61 74 | 65 72 20 76 65 72 73 69 | any lat|er versi|
|000001f0| 6f 6e 2e 0a 2a 2a 20 20 | 0a 2a 2a 20 20 54 68 69 |on..** |.** Thi|
|00000200| 73 20 6c 69 62 72 61 72 | 79 20 69 73 20 64 69 73 |s librar|y is dis|
|00000210| 74 72 69 62 75 74 65 64 | 20 69 6e 20 74 68 65 20 |tributed| in the |
|00000220| 68 6f 70 65 20 74 68 61 | 74 20 69 74 20 77 69 6c |hope tha|t it wil|
|00000230| 6c 20 62 65 20 75 73 65 | 66 75 6c 2c 0a 2a 2a 20 |l be use|ful,.** |
|00000240| 20 62 75 74 20 57 49 54 | 48 4f 55 54 20 41 4e 59 | but WIT|HOUT ANY|
|00000250| 20 57 41 52 52 41 4e 54 | 59 3b 20 77 69 74 68 6f | WARRANT|Y; witho|
|00000260| 75 74 20 65 76 65 6e 20 | 74 68 65 20 69 6d 70 6c |ut even |the impl|
|00000270| 69 65 64 20 77 61 72 72 | 61 6e 74 79 20 6f 66 0a |ied warr|anty of.|
|00000280| 2a 2a 20 20 4d 45 52 43 | 48 41 4e 54 41 42 49 4c |** MERC|HANTABIL|
|00000290| 49 54 59 20 6f 72 20 46 | 49 54 4e 45 53 53 20 46 |ITY or F|ITNESS F|
|000002a0| 4f 52 20 41 20 50 41 52 | 54 49 43 55 4c 41 52 20 |OR A PAR|TICULAR |
|000002b0| 50 55 52 50 4f 53 45 2e | 20 53 65 65 20 74 68 65 |PURPOSE.| See the|
|000002c0| 20 47 4e 55 0a 2a 2a 20 | 20 4c 65 73 73 65 72 20 | GNU.** | Lesser |
|000002d0| 47 65 6e 65 72 61 6c 20 | 50 75 62 6c 69 63 20 4c |General |Public L|
|000002e0| 69 63 65 6e 73 65 20 66 | 6f 72 20 6d 6f 72 65 20 |icense f|or more |
|000002f0| 64 65 74 61 69 6c 73 2e | 0a 2a 2a 20 20 0a 2a 2a |details.|.** .**|
|00000300| 20 20 59 6f 75 20 73 68 | 6f 75 6c 64 20 68 61 76 | You sh|ould hav|
|00000310| 65 20 72 65 63 65 69 76 | 65 64 20 61 20 63 6f 70 |e receiv|ed a cop|
|00000320| 79 20 6f 66 20 74 68 65 | 20 47 4e 55 20 4c 65 73 |y of the| GNU Les|
|00000330| 73 65 72 20 47 65 6e 65 | 72 61 6c 20 50 75 62 6c |ser Gene|ral Publ|
|00000340| 69 63 0a 2a 2a 20 20 4c | 69 63 65 6e 73 65 20 61 |ic.** L|icense a|
|00000350| 6c 6f 6e 67 20 77 69 74 | 68 20 74 68 69 73 20 6c |long wit|h this l|
|00000360| 69 62 72 61 72 79 3b 20 | 69 66 20 6e 6f 74 2c 20 |ibrary; |if not, |
|00000370| 77 72 69 74 65 20 74 6f | 20 74 68 65 20 46 72 65 |write to| the Fre|
|00000380| 65 20 53 6f 66 74 77 61 | 72 65 0a 2a 2a 20 20 46 |e Softwa|re.** F|
|00000390| 6f 75 6e 64 61 74 69 6f | 6e 2c 20 49 6e 63 2e 2c |oundatio|n, Inc.,|
|000003a0| 20 35 39 20 54 65 6d 70 | 6c 65 20 50 6c 61 63 65 | 59 Temp|le Place|
|000003b0| 2c 20 53 75 69 74 65 20 | 33 33 30 2c 20 42 6f 73 |, Suite |330, Bos|
|000003c0| 74 6f 6e 2c 20 4d 41 20 | 30 32 31 31 31 2d 31 33 |ton, MA |02111-13|
|000003d0| 30 37 20 55 53 41 0a 2a | 2f 0a 0a 23 69 6d 70 6f |07 USA.*|/..#impo|
|000003e0| 72 74 20 3c 50 61 6e 74 | 6f 6d 69 6d 65 2f 4c 6f |rt <Pant|omime/Lo|
|000003f0| 63 61 6c 53 74 6f 72 65 | 2e 68 3e 0a 0a 23 69 6d |calStore|.h>..#im|
|00000400| 70 6f 72 74 20 3c 50 61 | 6e 74 6f 6d 69 6d 65 2f |port <Pa|ntomime/|
|00000410| 43 6f 6e 73 74 61 6e 74 | 73 2e 68 3e 0a 23 69 6d |Constant|s.h>.#im|
|00000420| 70 6f 72 74 20 3c 50 61 | 6e 74 6f 6d 69 6d 65 2f |port <Pa|ntomime/|
|00000430| 4c 6f 63 61 6c 46 6f 6c | 64 65 72 2e 68 3e 0a 23 |LocalFol|der.h>.#|
|00000440| 69 6d 70 6f 72 74 20 3c | 50 61 6e 74 6f 6d 69 6d |import <|Pantomim|
|00000450| 65 2f 55 52 4c 4e 61 6d | 65 2e 68 3e 0a 0a 40 69 |e/URLNam|e.h>..@i|
|00000460| 6d 70 6c 65 6d 65 6e 74 | 61 74 69 6f 6e 20 4c 6f |mplement|ation Lo|
|00000470| 63 61 6c 53 74 6f 72 65 | 0a 0a 2f 2f 0a 2f 2f 0a |calStore|..//.//.|
|00000480| 2f 2f 0a 2d 20 28 76 6f | 69 64 29 20 64 65 61 6c |//.- (vo|id) deal|
|00000490| 6c 6f 63 0a 7b 0a 20 20 | 52 45 4c 45 41 53 45 28 |loc.{. |RELEASE(|
|000004a0| 70 61 74 68 29 3b 0a 20 | 20 52 45 4c 45 41 53 45 |path);. | RELEASE|
|000004b0| 28 66 6f 6c 64 65 72 73 | 29 3b 0a 20 20 52 45 4c |(folders|);. REL|
|000004c0| 45 41 53 45 28 66 69 6c | 65 4d 61 6e 61 67 65 72 |EASE(fil|eManager|
|000004d0| 29 3b 0a 20 20 0a 20 20 | 5b 73 75 70 65 72 20 64 |);. . |[super d|
|000004e0| 65 61 6c 6c 6f 63 5d 3b | 0a 7d 0a 0a 0a 2f 2f 0a |ealloc];|.}...//.|
|000004f0| 2f 2f 0a 2f 2f 0a 2d 20 | 28 69 64 29 20 69 6e 69 |//.//.- |(id) ini|
|00000500| 74 57 69 74 68 50 61 74 | 68 54 6f 44 69 72 65 63 |tWithPat|hToDirec|
|00000510| 74 6f 72 79 3a 20 28 4e | 53 53 74 72 69 6e 67 20 |tory: (N|SString |
|00000520| 2a 29 20 74 68 65 50 61 | 74 68 0a 7b 0a 20 20 42 |*) thePa|th.{. B|
|00000530| 4f 4f 4c 20 69 73 44 69 | 72 65 63 74 6f 72 79 3b |OOL isDi|rectory;|
|00000540| 0a 20 20 0a 20 20 73 65 | 6c 66 20 3d 20 5b 73 75 |. . se|lf = [su|
|00000550| 70 65 72 20 69 6e 69 74 | 5d 3b 0a 20 20 0a 20 20 |per init|];. . |
|00000560| 5b 73 65 6c 66 20 73 65 | 74 50 61 74 68 3a 20 74 |[self se|tPath: t|
|00000570| 68 65 50 61 74 68 5d 3b | 0a 20 20 0a 20 20 2f 2f |hePath];|. . //|
|00000580| 20 57 65 20 69 6e 69 74 | 69 61 6c 69 7a 65 20 6f | We init|ialize o|
|00000590| 75 72 20 63 61 63 68 65 | 20 6f 66 20 6f 70 65 6e |ur cache| of open|
|000005a0| 65 64 20 66 6f 6c 64 65 | 72 73 0a 20 20 66 6f 6c |ed folde|rs. fol|
|000005b0| 64 65 72 73 20 3d 20 5b | 5b 4e 53 4d 75 74 61 62 |ders = [|[NSMutab|
|000005c0| 6c 65 44 69 63 74 69 6f | 6e 61 72 79 20 61 6c 6c |leDictio|nary all|
|000005d0| 6f 63 5d 20 69 6e 69 74 | 5d 3b 0a 20 20 0a 20 20 |oc] init|];. . |
|000005e0| 66 69 6c 65 4d 61 6e 61 | 67 65 72 20 3d 20 5b 4e |fileMana|ger = [N|
|000005f0| 53 46 69 6c 65 4d 61 6e | 61 67 65 72 20 64 65 66 |SFileMan|ager def|
|00000600| 61 75 6c 74 4d 61 6e 61 | 67 65 72 5d 3b 0a 20 20 |aultMana|ger];. |
|00000610| 52 45 54 41 49 4e 28 66 | 69 6c 65 4d 61 6e 61 67 |RETAIN(f|ileManag|
|00000620| 65 72 29 3b 0a 0a 20 20 | 69 66 20 28 5b 66 69 6c |er);.. |if ([fil|
|00000630| 65 4d 61 6e 61 67 65 72 | 20 66 69 6c 65 45 78 69 |eManager| fileExi|
|00000640| 73 74 73 41 74 50 61 74 | 68 3a 20 5b 73 65 6c 66 |stsAtPat|h: [self|
|00000650| 20 70 61 74 68 5d 0a 09 | 09 20 20 20 69 73 44 69 | path]..|. isDi|
|00000660| 72 65 63 74 6f 72 79 3a | 20 26 69 73 44 69 72 65 |rectory:| &isDire|
|00000670| 63 74 6f 72 79 5d 29 0a | 20 20 20 20 7b 0a 20 20 |ctory]).| {. |
|00000680| 20 20 20 20 69 66 20 28 | 21 20 69 73 44 69 72 65 | if (|! isDire|
|00000690| 63 74 6f 72 79 29 0a 09 | 7b 0a 09 20 20 41 55 54 |ctory)..|{.. AUT|
|000006a0| 4f 52 45 4c 45 41 53 45 | 28 73 65 6c 66 29 3b 0a |ORELEASE|(self);.|
|000006b0| 09 20 20 72 65 74 75 72 | 6e 20 6e 69 6c 3b 0a 09 |. retur|n nil;..|
|000006c0| 7d 0a 20 20 20 20 7d 0a | 20 20 65 6c 73 65 0a 20 |}. }.| else. |
|000006d0| 20 20 20 7b 0a 20 20 20 | 20 20 20 41 55 54 4f 52 | {. | AUTOR|
|000006e0| 45 4c 45 41 53 45 28 73 | 65 6c 66 29 3b 0a 20 20 |ELEASE(s|elf);. |
|000006f0| 20 20 20 20 72 65 74 75 | 72 6e 20 6e 69 6c 3b 0a | retu|rn nil;.|
|00000700| 20 20 20 20 7d 0a 0a 20 | 20 2f 2f 20 4a 75 73 74 | }.. | // Just|
|00000710| 20 62 65 66 6f 72 65 20 | 72 65 74 75 72 6e 69 6e | before |returnin|
|00000720| 67 2c 20 77 65 20 66 69 | 6e 61 6c 6c 79 20 65 6e |g, we fi|nally en|
|00000730| 66 6f 72 63 65 20 6f 75 | 72 20 66 69 6c 65 20 61 |force ou|r file a|
|00000740| 74 74 72 69 62 75 74 65 | 73 0a 20 20 5b 73 65 6c |ttribute|s. [sel|
|00000750| 66 20 5f 65 6e 66 6f 72 | 63 65 46 69 6c 65 41 74 |f _enfor|ceFileAt|
|00000760| 74 72 69 62 75 74 65 73 | 5d 3b 0a 0a 0a 20 20 72 |tributes|];... r|
|00000770| 65 74 75 72 6e 20 73 65 | 6c 66 3b 0a 7d 0a 0a 0a |eturn se|lf;.}...|
|00000780| 2f 2f 0a 2f 2f 0a 2f 2f | 0a 2d 20 28 69 64 29 20 |//.//.//|.- (id) |
|00000790| 69 6e 69 74 57 69 74 68 | 55 52 4c 3a 20 28 4e 53 |initWith|URL: (NS|
|000007a0| 53 74 72 69 6e 67 20 2a | 29 20 74 68 65 55 52 4c |String *|) theURL|
|000007b0| 3b 0a 7b 0a 20 20 55 52 | 4c 4e 61 6d 65 20 2a 75 |;.{. UR|LName *u|
|000007c0| 72 6c 4e 61 6d 65 3b 0a | 0a 20 20 75 72 6c 4e 61 |rlName;.|. urlNa|
|000007d0| 6d 65 20 3d 20 5b 5b 55 | 52 4c 4e 61 6d 65 20 61 |me = [[U|RLName a|
|000007e0| 6c 6c 6f 63 5d 20 69 6e | 69 74 57 69 74 68 53 74 |lloc] in|itWithSt|
|000007f0| 72 69 6e 67 3a 20 74 68 | 65 55 52 4c 5d 3b 0a 0a |ring: th|eURL];..|
|00000800| 20 20 73 65 6c 66 20 3d | 20 5b 73 65 6c 66 20 69 | self =| [self i|
|00000810| 6e 69 74 57 69 74 68 50 | 61 74 68 54 6f 44 69 72 |nitWithP|athToDir|
|00000820| 65 63 74 6f 72 79 3a 20 | 5b 75 72 6c 4e 61 6d 65 |ectory: |[urlName|
|00000830| 20 70 61 74 68 5d 5d 3b | 0a 0a 20 20 52 45 4c 45 | path]];|.. RELE|
|00000840| 41 53 45 28 75 72 6c 4e | 61 6d 65 29 3b 0a 20 20 |ASE(urlN|ame);. |
|00000850| 0a 20 20 72 65 74 75 72 | 6e 20 73 65 6c 66 3b 0a |. retur|n self;.|
|00000860| 7d 0a 0a 0a 2f 2f 0a 2f | 2f 20 54 68 69 73 20 6d |}...//./|/ This m|
|00000870| 65 74 68 6f 64 20 77 69 | 6c 6c 20 6f 70 65 6e 20 |ethod wi|ll open |
|00000880| 61 75 74 6f 6d 61 74 69 | 63 61 6c 6c 79 20 49 6e |automati|cally In|
|00000890| 62 6f 78 20 28 63 61 73 | 65 2d 69 6e 73 65 6e 73 |box (cas|e-insens|
|000008a0| 69 74 69 76 65 29 2e 0a | 2f 2f 20 49 74 20 6d 61 |itive)..|// It ma|
|000008b0| 79 20 72 65 74 75 72 6e | 20 6e 69 6c 20 69 66 20 |y return| nil if |
|000008c0| 74 68 65 20 6f 70 65 6e | 69 6e 67 20 66 61 69 6c |the open|ing fail|
|000008d0| 65 64 20 6f 72 20 49 6e | 62 6f 78 20 77 61 73 6e |ed or In|box wasn|
|000008e0| 27 74 20 66 6f 75 6e 64 | 2e 0a 2f 2f 0a 2d 20 28 |'t found|..//.- (|
|000008f0| 69 64 29 20 64 65 66 61 | 75 6c 74 46 6f 6c 64 65 |id) defa|ultFolde|
|00000900| 72 0a 7b 0a 20 20 72 65 | 74 75 72 6e 20 5b 73 65 |r.{. re|turn [se|
|00000910| 6c 66 20 66 6f 6c 64 65 | 72 46 6f 72 4e 61 6d 65 |lf folde|rForName|
|00000920| 3a 20 40 22 49 6e 62 6f | 78 22 5d 3b 0a 7d 0a 0a |: @"Inbo|x"];.}..|
|00000930| 0a 2f 2f 0a 2f 2f 20 54 | 68 69 73 20 6d 65 74 68 |.//.// T|his meth|
|00000940| 6f 64 20 69 73 20 75 73 | 65 64 20 74 6f 20 6f 70 |od is us|ed to op|
|00000950| 65 6e 20 74 68 65 20 66 | 6f 6c 64 65 72 20 74 68 |en the f|older th|
|00000960| 65 4e 61 6d 65 20 69 6e | 20 74 68 65 20 63 75 72 |eName in| the cur|
|00000970| 72 65 6e 74 0a 2f 2f 20 | 64 69 72 65 63 74 6f 72 |rent.// |director|
|00000980| 79 20 6f 66 20 74 68 69 | 73 20 6c 6f 63 61 6c 20 |y of thi|s local |
|00000990| 73 74 6f 72 65 2e 0a 2f | 2f 0a 2d 20 28 69 64 29 |store../|/.- (id)|
|000009a0| 20 66 6f 6c 64 65 72 46 | 6f 72 4e 61 6d 65 3a 20 | folderF|orName: |
|000009b0| 28 4e 53 53 74 72 69 6e | 67 20 2a 29 20 74 68 65 |(NSStrin|g *) the|
|000009c0| 4e 61 6d 65 0a 7b 0a 20 | 20 4e 53 45 6e 75 6d 65 |Name.{. | NSEnume|
|000009d0| 72 61 74 6f 72 20 2a 61 | 6e 45 6e 75 6d 65 72 61 |rator *a|nEnumera|
|000009e0| 74 6f 72 3b 0a 20 20 4e | 53 53 74 72 69 6e 67 20 |tor;. N|SString |
|000009f0| 2a 61 53 74 72 69 6e 67 | 3b 0a 20 20 46 6f 6c 64 |*aString|;. Fold|
|00000a00| 65 72 20 2a 63 61 63 68 | 65 64 46 6f 6c 64 65 72 |er *cach|edFolder|
|00000a10| 3b 0a 0a 20 20 61 6e 45 | 6e 75 6d 65 72 61 74 6f |;.. anE|numerato|
|00000a20| 72 20 3d 20 5b 73 65 6c | 66 20 66 6f 6c 64 65 72 |r = [sel|f folder|
|00000a30| 45 6e 75 6d 65 72 61 74 | 6f 72 5d 3b 0a 20 20 63 |Enumerat|or];. c|
|00000a40| 61 63 68 65 64 46 6f 6c | 64 65 72 20 3d 20 5b 66 |achedFol|der = [f|
|00000a50| 6f 6c 64 65 72 73 20 6f | 62 6a 65 63 74 46 6f 72 |olders o|bjectFor|
|00000a60| 4b 65 79 3a 20 74 68 65 | 4e 61 6d 65 5d 3b 0a 20 |Key: the|Name];. |
|00000a70| 20 0a 20 20 69 66 20 28 | 20 5b 73 65 6c 66 20 66 | . if (| [self f|
|00000a80| 6f 6c 64 65 72 46 6f 72 | 4e 61 6d 65 49 73 4f 70 |olderFor|NameIsOp|
|00000a90| 65 6e 3a 20 74 68 65 4e | 61 6d 65 5d 20 29 0a 20 |en: theN|ame] ). |
|00000aa0| 20 20 20 7b 0a 20 20 20 | 20 20 20 72 65 74 75 72 | {. | retur|
|00000ab0| 6e 20 6e 69 6c 3b 0a 20 | 20 20 20 7d 0a 20 20 0a |n nil;. | }. .|
|00000ac0| 20 20 69 66 20 28 21 20 | 63 61 63 68 65 64 46 6f | if (! |cachedFo|
|00000ad0| 6c 64 65 72 20 29 0a 20 | 20 20 20 7b 0a 20 20 20 |lder ). | {. |
|00000ae0| 20 20 20 77 68 69 6c 65 | 20 28 20 28 61 53 74 72 | while| ( (aStr|
|00000af0| 69 6e 67 20 3d 20 5b 61 | 6e 45 6e 75 6d 65 72 61 |ing = [a|nEnumera|
|00000b00| 74 6f 72 20 6e 65 78 74 | 4f 62 6a 65 63 74 5d 29 |tor next|Object])|
|00000b10| 20 29 0a 09 7b 0a 09 20 | 20 69 66 20 28 20 5b 61 | )..{.. | if ( [a|
|00000b20| 53 74 72 69 6e 67 20 63 | 6f 6d 70 61 72 65 3a 20 |String c|ompare: |
|00000b30| 74 68 65 4e 61 6d 65 5d | 20 3d 3d 20 4e 53 4f 72 |theName]| == NSOr|
|00000b40| 64 65 72 65 64 53 61 6d | 65 20 29 0a 09 20 20 20 |deredSam|e ).. |
|00000b50| 20 7b 0a 09 20 20 20 20 | 20 20 4c 6f 63 61 6c 46 | {.. | LocalF|
|00000b60| 6f 6c 64 65 72 20 2a 61 | 46 6f 6c 64 65 72 3b 0a |older *a|Folder;.|
|00000b70| 09 20 20 20 20 20 20 0a | 09 20 20 20 20 20 20 61 |. .|. a|
|00000b80| 46 6f 6c 64 65 72 20 3d | 20 5b 5b 4c 6f 63 61 6c |Folder =| [[Local|
|00000b90| 46 6f 6c 64 65 72 20 61 | 6c 6c 6f 63 5d 20 69 6e |Folder a|lloc] in|
|00000ba0| 69 74 57 69 74 68 50 61 | 74 68 54 6f 46 69 6c 65 |itWithPa|thToFile|
|00000bb0| 3a 0a 09 09 09 09 09 20 | 20 20 20 20 20 20 5b 4e |:...... | [N|
|00000bc0| 53 53 74 72 69 6e 67 20 | 73 74 72 69 6e 67 57 69 |SString |stringWi|
|00000bd0| 74 68 46 6f 72 6d 61 74 | 3a 40 22 25 40 2f 25 40 |thFormat|:@"%@/%@|
|00000be0| 22 2c 0a 09 09 09 09 09 | 09 09 20 5b 73 65 6c 66 |",......|.. [self|
|00000bf0| 20 70 61 74 68 5d 2c 20 | 61 53 74 72 69 6e 67 5d | path], |aString]|
|00000c00| 5d 3b 0a 09 20 20 20 20 | 20 20 0a 09 20 20 20 20 |];.. | .. |
|00000c10| 20 20 69 66 20 28 20 61 | 46 6f 6c 64 65 72 20 29 | if ( a|Folder )|
|00000c20| 0a 09 09 7b 0a 09 09 20 | 20 5b 61 46 6f 6c 64 65 |...{... | [aFolde|
|00000c30| 72 20 73 65 74 53 74 6f | 72 65 3a 20 28 53 74 6f |r setSto|re: (Sto|
|00000c40| 72 65 20 2a 29 73 65 6c | 66 5d 3b 0a 09 09 20 20 |re *)sel|f];... |
|00000c50| 5b 61 46 6f 6c 64 65 72 | 20 73 65 74 4e 61 6d 65 |[aFolder| setName|
|00000c60| 3a 20 74 68 65 4e 61 6d | 65 5d 3b 0a 09 09 20 20 |: theNam|e];... |
|00000c70| 5b 61 46 6f 6c 64 65 72 | 20 70 61 72 73 65 5d 3b |[aFolder| parse];|
|00000c80| 0a 0a 09 09 20 20 2f 2f | 20 57 65 20 6e 6f 77 20 |.... //| We now |
|00000c90| 63 61 63 68 65 20 69 74 | 20 61 6e 64 20 72 65 74 |cache it| and ret|
|00000ca0| 75 72 6e 20 69 74 0a 09 | 09 20 20 5b 66 6f 6c 64 |urn it..|. [fold|
|00000cb0| 65 72 73 20 73 65 74 4f | 62 6a 65 63 74 3a 20 41 |ers setO|bject: A|
|00000cc0| 55 54 4f 52 45 4c 45 41 | 53 45 28 61 46 6f 6c 64 |UTORELEA|SE(aFold|
|00000cd0| 65 72 29 0a 09 09 09 20 | 20 20 66 6f 72 4b 65 79 |er).... | forKey|
|00000ce0| 3a 20 74 68 65 4e 61 6d | 65 5d 3b 0a 09 09 7d 0a |: theNam|e];...}.|
|00000cf0| 09 20 20 20 20 20 20 0a | 09 20 20 20 20 20 20 72 |. .|. r|
|00000d00| 65 74 75 72 6e 20 61 46 | 6f 6c 64 65 72 3b 0a 09 |eturn aF|older;..|
|00000d10| 20 20 20 20 7d 0a 09 7d | 0a 20 20 20 20 20 20 0a | }..}|. .|
|00000d20| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 6e 69 6c | re|turn nil|
|00000d30| 3b 20 2f 2f 20 4e 65 76 | 65 72 20 72 65 61 63 68 |; // Nev|er reach|
|00000d40| 65 64 3f 0a 20 20 20 20 | 7d 0a 20 20 65 6c 73 65 |ed?. |}. else|
|00000d50| 0a 20 20 20 20 7b 0a 20 | 20 20 20 20 20 72 65 74 |. {. | ret|
|00000d60| 75 72 6e 20 63 61 63 68 | 65 64 46 6f 6c 64 65 72 |urn cach|edFolder|
|00000d70| 3b 0a 20 20 20 20 7d 0a | 7d 0a 0a 2f 2f 0a 2f 2f |;. }.|}..//.//|
|00000d80| 0a 2f 2f 0a 2d 20 28 69 | 64 29 20 66 6f 6c 64 65 |.//.- (i|d) folde|
|00000d90| 72 46 6f 72 55 52 4c 3a | 20 28 4e 53 53 74 72 69 |rForURL:| (NSStri|
|00000da0| 6e 67 20 2a 29 20 74 68 | 65 55 52 4c 3b 0a 7b 0a |ng *) th|eURL;.{.|
|00000db0| 20 20 55 52 4c 4e 61 6d | 65 20 2a 75 72 6c 4e 61 | URLNam|e *urlNa|
|00000dc0| 6d 65 3b 0a 20 20 69 64 | 20 61 46 6f 6c 64 65 72 |me;. id| aFolder|
|00000dd0| 3b 0a 0a 20 20 75 72 6c | 4e 61 6d 65 20 3d 20 5b |;.. url|Name = [|
|00000de0| 5b 55 52 4c 4e 61 6d 65 | 20 61 6c 6c 6f 63 5d 20 |[URLName| alloc] |
|00000df0| 69 6e 69 74 57 69 74 68 | 53 74 72 69 6e 67 3a 20 |initWith|String: |
|00000e00| 74 68 65 55 52 4c 5d 3b | 0a 0a 20 20 61 46 6f 6c |theURL];|.. aFol|
|00000e10| 64 65 72 20 3d 20 5b 73 | 65 6c 66 20 66 6f 6c 64 |der = [s|elf fold|
|00000e20| 65 72 46 6f 72 4e 61 6d | 65 3a 20 5b 75 72 6c 4e |erForNam|e: [urlN|
|00000e30| 61 6d 65 20 66 6f 6c 64 | 65 72 6e 61 6d 65 5d 5d |ame fold|ername]]|
|00000e40| 3b 0a 0a 20 20 52 45 4c | 45 41 53 45 28 75 72 6c |;.. REL|EASE(url|
|00000e50| 4e 61 6d 65 29 3b 0a 20 | 20 0a 20 20 72 65 74 75 |Name);. | . retu|
|00000e60| 72 6e 20 61 46 6f 6c 64 | 65 72 3b 0a 7d 0a 0a 0a |rn aFold|er;.}...|
|00000e70| 2f 2f 0a 2f 2f 20 54 68 | 69 73 20 6d 65 74 68 6f |//.// Th|is metho|
|00000e80| 64 20 72 65 74 75 72 6e | 73 20 74 68 65 20 6c 69 |d return|s the li|
|00000e90| 73 74 20 6f 66 20 66 6f | 6c 64 65 72 73 20 63 6f |st of fo|lders co|
|00000ea0| 6e 74 61 69 6e 65 64 20 | 69 6e 20 0a 2f 2f 20 61 |ntained |in .// a|
|00000eb0| 20 73 70 65 63 69 66 69 | 63 20 64 69 72 65 63 74 | specifi|c direct|
|00000ec0| 6f 72 79 2e 20 49 74 27 | 6c 6c 20 63 75 72 72 65 |ory. It'|ll curre|
|00000ed0| 6e 74 6c 79 20 69 67 6e | 6f 72 65 20 73 6f 6d 65 |ntly ign|ore some|
|00000ee0| 20 74 68 69 6e 67 73 0a | 2f 2f 20 6c 69 6b 65 20 | things.|// like |
|00000ef0| 4e 65 74 73 63 61 70 65 | 20 4d 61 69 6c 27 73 20 |Netscape| Mail's |
|00000f00| 73 75 6d 6d 61 72 79 20 | 66 69 6c 65 73 20 61 6e |summary |files an|
|00000f10| 64 20 50 61 6e 74 6f 6d | 69 6d 65 27 73 20 6c 6f |d Pantom|ime's lo|
|00000f20| 63 61 6c 0a 2f 2f 20 63 | 61 63 68 65 20 66 69 6c |cal.// c|ache fil|
|00000f30| 65 73 2e 0a 2f 2f 0a 2d | 20 28 4e 53 45 6e 75 6d |es..//.-| (NSEnum|
|00000f40| 65 72 61 74 6f 72 20 2a | 29 20 66 6f 6c 64 65 72 |erator *|) folder|
|00000f50| 45 6e 75 6d 65 72 61 74 | 6f 72 0a 7b 0a 20 20 4e |Enumerat|or.{. N|
|00000f60| 53 44 69 72 65 63 74 6f | 72 79 45 6e 75 6d 65 72 |SDirecto|ryEnumer|
|00000f70| 61 74 6f 72 20 2a 61 44 | 69 63 74 69 6f 6e 61 72 |ator *aD|ictionar|
|00000f80| 79 45 6e 75 6d 65 72 61 | 74 6f 72 3b 0a 20 20 4e |yEnumera|tor;. N|
|00000f90| 53 4d 75 74 61 62 6c 65 | 41 72 72 61 79 20 2a 61 |SMutable|Array *a|
|00000fa0| 4d 75 74 61 62 6c 65 41 | 72 72 61 79 3b 0a 20 20 |MutableA|rray;. |
|00000fb0| 4e 53 53 74 72 69 6e 67 | 20 2a 61 53 74 72 69 6e |NSString| *aStrin|
|00000fc0| 67 3b 0a 20 20 0a 20 20 | 61 4d 75 74 61 62 6c 65 |g;. . |aMutable|
|00000fd0| 41 72 72 61 79 20 3d 20 | 5b 5b 4e 53 4d 75 74 61 |Array = |[[NSMuta|
|00000fe0| 62 6c 65 41 72 72 61 79 | 20 61 6c 6c 6f 63 5d 20 |bleArray| alloc] |
|00000ff0| 69 6e 69 74 57 69 74 68 | 41 72 72 61 79 3a 0a 09 |initWith|Array:..|
|00001000| 09 09 09 09 20 20 20 20 | 5b 5b 66 69 6c 65 4d 61 |.... |[[fileMa|
|00001010| 6e 61 67 65 72 20 65 6e | 75 6d 65 72 61 74 6f 72 |nager en|umerator|
|00001020| 41 74 50 61 74 68 3a 20 | 0a 09 09 09 09 09 09 09 |AtPath: |........|
|00001030| 20 20 20 20 5b 73 65 6c | 66 20 70 61 74 68 5d 5d | [sel|f path]]|
|00001040| 20 61 6c 6c 4f 62 6a 65 | 63 74 73 5d 5d 3b 0a 20 | allObje|cts]];. |
|00001050| 20 41 55 54 4f 52 45 4c | 45 41 53 45 28 61 4d 75 | AUTOREL|EASE(aMu|
|00001060| 74 61 62 6c 65 41 72 72 | 61 79 29 3b 0a 0a 20 20 |tableArr|ay);.. |
|00001070| 61 44 69 63 74 69 6f 6e | 61 72 79 45 6e 75 6d 65 |aDiction|aryEnume|
|00001080| 72 61 74 6f 72 20 3d 20 | 5b 66 69 6c 65 4d 61 6e |rator = |[fileMan|
|00001090| 61 67 65 72 20 65 6e 75 | 6d 65 72 61 74 6f 72 41 |ager enu|meratorA|
|000010a0| 74 50 61 74 68 3a 20 5b | 73 65 6c 66 20 70 61 74 |tPath: [|self pat|
|000010b0| 68 5d 5d 3b 0a 20 20 0a | 20 20 2f 2f 20 57 65 20 |h]];. .| // We |
|000010c0| 69 74 65 72 61 74 65 20 | 74 68 72 6f 75 67 68 20 |iterate |through |
|000010d0| 6f 75 72 20 61 72 72 61 | 79 2e 20 49 66 20 6d 62 |our arra|y. If mb|
|000010e0| 6f 78 20 41 20 61 6e 64 | 20 2e 41 2e 73 75 6d 6d |ox A and| .A.summ|
|000010f0| 61 72 79 20 28 6f 72 20 | 2e 41 2e 63 61 63 68 65 |ary (or |.A.cache|
|00001100| 29 20 65 78 69 73 74 73 | 2c 20 77 65 0a 20 20 2f |) exists|, we. /|
|00001110| 2f 20 72 65 6d 6f 76 65 | 20 2e 41 2e 73 75 6d 6d |/ remove| .A.summ|
|00001120| 61 72 79 20 28 6f 72 20 | 2e 41 2e 63 61 63 68 65 |ary (or |.A.cache|
|00001130| 29 20 66 72 6f 6d 20 6f | 75 72 20 6d 75 74 61 62 |) from o|ur mutab|
|00001140| 6c 65 20 61 72 72 61 79 | 2e 0a 20 20 77 68 69 6c |le array|.. whil|
|00001150| 65 20 28 20 28 61 53 74 | 72 69 6e 67 20 3d 20 5b |e ( (aSt|ring = [|
|00001160| 61 44 69 63 74 69 6f 6e | 61 72 79 45 6e 75 6d 65 |aDiction|aryEnume|
|00001170| 72 61 74 6f 72 20 6e 65 | 78 74 4f 62 6a 65 63 74 |rator ne|xtObject|
|00001180| 5d 29 20 29 0a 20 20 20 | 20 7b 20 0a 20 20 20 20 |]) ). | { . |
|00001190| 20 20 4e 53 53 74 72 69 | 6e 67 20 2a 6c 61 73 74 | NSStri|ng *last|
|000011a0| 50 61 74 68 43 6f 6d 70 | 6f 6e 65 6e 74 2c 20 2a |PathComp|onent, *|
|000011b0| 70 61 74 68 54 6f 46 6f | 6c 64 65 72 3b 0a 0a 20 |pathToFo|lder;.. |
|000011c0| 20 20 20 20 20 6c 61 73 | 74 50 61 74 68 43 6f 6d | las|tPathCom|
|000011d0| 70 6f 6e 65 6e 74 20 3d | 20 5b 61 53 74 72 69 6e |ponent =| [aStrin|
|000011e0| 67 20 6c 61 73 74 50 61 | 74 68 43 6f 6d 70 6f 6e |g lastPa|thCompon|
|000011f0| 65 6e 74 5d 3b 0a 20 20 | 20 20 20 20 70 61 74 68 |ent];. | path|
|00001200| 54 6f 46 6f 6c 64 65 72 | 20 3d 20 5b 61 53 74 72 |ToFolder| = [aStr|
|00001210| 69 6e 67 20 73 75 62 73 | 74 72 69 6e 67 54 6f 49 |ing subs|tringToI|
|00001220| 6e 64 65 78 3a 20 28 5b | 61 53 74 72 69 6e 67 20 |ndex: ([|aString |
|00001230| 6c 65 6e 67 74 68 5d 20 | 2d 20 5b 6c 61 73 74 50 |length] |- [lastP|
|00001240| 61 74 68 43 6f 6d 70 6f | 6e 65 6e 74 20 6c 65 6e |athCompo|nent len|
|00001250| 67 74 68 5d 29 5d 3b 0a | 20 20 20 20 20 20 0a 20 |gth])];.| . |
|00001260| 20 20 20 20 20 5b 61 4d | 75 74 61 62 6c 65 41 72 | [aM|utableAr|
|00001270| 72 61 79 20 72 65 6d 6f | 76 65 4f 62 6a 65 63 74 |ray remo|veObject|
|00001280| 3a 20 5b 4e 53 53 74 72 | 69 6e 67 20 73 74 72 69 |: [NSStr|ing stri|
|00001290| 6e 67 57 69 74 68 46 6f | 72 6d 61 74 3a 20 40 22 |ngWithFo|rmat: @"|
|000012a0| 25 40 2e 25 40 2e 73 75 | 6d 6d 61 72 79 22 2c 20 |%@.%@.su|mmary", |
|000012b0| 70 61 74 68 54 6f 46 6f | 6c 64 65 72 2c 20 6c 61 |pathToFo|lder, la|
|000012c0| 73 74 50 61 74 68 43 6f | 6d 70 6f 6e 65 6e 74 5d |stPathCo|mponent]|
|000012d0| 5d 3b 0a 20 20 20 20 20 | 20 5b 61 4d 75 74 61 62 |];. | [aMutab|
|000012e0| 6c 65 41 72 72 61 79 20 | 72 65 6d 6f 76 65 4f 62 |leArray |removeOb|
|000012f0| 6a 65 63 74 3a 20 5b 4e | 53 53 74 72 69 6e 67 20 |ject: [N|SString |
|00001300| 73 74 72 69 6e 67 57 69 | 74 68 46 6f 72 6d 61 74 |stringWi|thFormat|
|00001310| 3a 20 40 22 25 40 2e 25 | 40 2e 63 61 63 68 65 22 |: @"%@.%|@.cache"|
|00001320| 2c 20 70 61 74 68 54 6f | 46 6f 6c 64 65 72 2c 20 |, pathTo|Folder, |
|00001330| 6c 61 73 74 50 61 74 68 | 43 6f 6d 70 6f 6e 65 6e |lastPath|Componen|
|00001340| 74 5d 5d 3b 0a 0a 20 20 | 20 20 20 20 2f 2f 20 57 |t]];.. | // W|
|00001350| 65 20 61 6c 73 6f 20 72 | 65 6d 6f 76 65 20 41 70 |e also r|emove Ap|
|00001360| 70 6c 65 20 4d 61 63 20 | 4f 53 20 58 20 2e 44 53 |ple Mac |OS X .DS|
|00001370| 5f 53 74 6f 72 65 20 64 | 69 72 65 63 74 6f 72 79 |_Store d|irectory|
|00001380| 0a 20 20 20 20 20 20 5b | 61 4d 75 74 61 62 6c 65 |. [|aMutable|
|00001390| 41 72 72 61 79 20 72 65 | 6d 6f 76 65 4f 62 6a 65 |Array re|moveObje|
|000013a0| 63 74 3a 20 5b 4e 53 53 | 74 72 69 6e 67 20 73 74 |ct: [NSS|tring st|
|000013b0| 72 69 6e 67 57 69 74 68 | 46 6f 72 6d 61 74 3a 20 |ringWith|Format: |
|000013c0| 40 22 25 40 2e 44 53 5f | 53 74 6f 72 65 22 2c 20 |@"%@.DS_|Store", |
|000013d0| 70 61 74 68 54 6f 46 6f | 6c 64 65 72 5d 5d 3b 0a |pathToFo|lder]];.|
|000013e0| 20 20 20 20 7d 0a 20 20 | 0a 20 20 72 65 74 75 72 | }. |. retur|
|000013f0| 6e 20 5b 61 4d 75 74 61 | 62 6c 65 41 72 72 61 79 |n [aMuta|bleArray|
|00001400| 20 6f 62 6a 65 63 74 45 | 6e 75 6d 65 72 61 74 6f | objectE|numerato|
|00001410| 72 5d 3b 0a 7d 0a 0a 0a | 2f 2f 0a 2f 2f 0a 2f 2f |r];.}...|//.//.//|
|00001420| 0a 2d 20 28 4e 53 45 6e | 75 6d 65 72 61 74 6f 72 |.- (NSEn|umerator|
|00001430| 20 2a 29 20 73 75 62 73 | 63 72 69 62 65 64 46 6f | *) subs|cribedFo|
|00001440| 6c 64 65 72 45 6e 75 6d | 65 72 61 74 6f 72 0a 7b |lderEnum|erator.{|
|00001450| 0a 20 20 72 65 74 75 72 | 6e 20 5b 73 65 6c 66 20 |. retur|n [self |
|00001460| 66 6f 6c 64 65 72 45 6e | 75 6d 65 72 61 74 6f 72 |folderEn|umerator|
|00001470| 5d 3b 0a 7d 0a 0a 0a 2d | 20 28 4e 53 53 74 72 69 |];.}...-| (NSStri|
|00001480| 6e 67 20 2a 29 20 70 61 | 74 68 0a 7b 0a 20 20 72 |ng *) pa|th.{. r|
|00001490| 65 74 75 72 6e 20 70 61 | 74 68 3b 0a 7d 0a 0a 0a |eturn pa|th;.}...|
|000014a0| 2d 20 28 76 6f 69 64 29 | 20 73 65 74 50 61 74 68 |- (void)| setPath|
|000014b0| 3a 20 28 4e 53 53 74 72 | 69 6e 67 20 2a 29 20 74 |: (NSStr|ing *) t|
|000014c0| 68 65 50 61 74 68 0a 7b | 0a 20 20 52 45 54 41 49 |hePath.{|. RETAI|
|000014d0| 4e 28 74 68 65 50 61 74 | 68 29 3b 0a 20 20 52 45 |N(thePat|h);. RE|
|000014e0| 4c 45 41 53 45 28 70 61 | 74 68 29 3b 0a 20 20 70 |LEASE(pa|th);. p|
|000014f0| 61 74 68 20 3d 20 74 68 | 65 50 61 74 68 3b 0a 7d |ath = th|ePath;.}|
|00001500| 0a 0a 2d 20 28 76 6f 69 | 64 29 20 63 6c 6f 73 65 |..- (voi|d) close|
|00001510| 0a 7b 0a 20 20 4e 53 45 | 6e 75 6d 65 72 61 74 6f |.{. NSE|numerato|
|00001520| 72 20 2a 61 6e 45 6e 75 | 6d 65 72 61 74 6f 72 3b |r *anEnu|merator;|
|00001530| 0a 20 20 4e 53 53 74 72 | 69 6e 67 20 2a 61 4e 61 |. NSStr|ing *aNa|
|00001540| 6d 65 3b 0a 0a 20 20 61 | 6e 45 6e 75 6d 65 72 61 |me;.. a|nEnumera|
|00001550| 74 6f 72 20 3d 20 5b 73 | 65 6c 66 20 6f 70 65 6e |tor = [s|elf open|
|00001560| 65 64 46 6f 6c 64 65 72 | 73 45 6e 75 6d 65 72 61 |edFolder|sEnumera|
|00001570| 74 6f 72 5d 3b 0a 0a 20 | 20 77 68 69 6c 65 20 28 |tor];.. | while (|
|00001580| 20 28 61 4e 61 6d 65 20 | 3d 20 5b 61 6e 45 6e 75 | (aName |= [anEnu|
|00001590| 6d 65 72 61 74 6f 72 20 | 6e 65 78 74 4f 62 6a 65 |merator |nextObje|
|000015a0| 63 74 5d 29 20 29 0a 20 | 20 20 20 7b 0a 20 20 20 |ct]) ). | {. |
|000015b0| 20 20 20 4c 6f 63 61 6c | 46 6f 6c 64 65 72 20 2a | Local|Folder *|
|000015c0| 61 46 6f 6c 64 65 72 3b | 0a 0a 20 20 20 20 20 20 |aFolder;|.. |
|000015d0| 61 46 6f 6c 64 65 72 20 | 3d 20 28 4c 6f 63 61 6c |aFolder |= (Local|
|000015e0| 46 6f 6c 64 65 72 20 2a | 29 5b 73 65 6c 66 20 66 |Folder *|)[self f|
|000015f0| 6f 6c 64 65 72 46 6f 72 | 4e 61 6d 65 3a 20 61 4e |olderFor|Name: aN|
|00001600| 61 6d 65 5d 3b 0a 20 20 | 20 20 20 20 5b 61 46 6f |ame];. | [aFo|
|00001610| 6c 64 65 72 20 63 6c 6f | 73 65 5d 3b 0a 20 20 20 |lder clo|se];. |
|00001620| 20 7d 0a 7d 0a 0a 0a 2f | 2f 0a 2f 2f 0a 2f 2f 0a | }.}.../|/.//.//.|
|00001630| 2d 20 28 4e 53 45 6e 75 | 6d 65 72 61 74 6f 72 20 |- (NSEnu|merator |
|00001640| 2a 29 20 6f 70 65 6e 65 | 64 46 6f 6c 64 65 72 73 |*) opene|dFolders|
|00001650| 45 6e 75 6d 65 72 61 74 | 6f 72 0a 7b 0a 20 20 72 |Enumerat|or.{. r|
|00001660| 65 74 75 72 6e 20 5b 66 | 6f 6c 64 65 72 73 20 6b |eturn [f|olders k|
|00001670| 65 79 45 6e 75 6d 65 72 | 61 74 6f 72 5d 3b 0a 7d |eyEnumer|ator];.}|
|00001680| 0a 0a 0a 2f 2f 0a 2f 2f | 0a 2f 2f 0a 2d 20 28 76 |...//.//|.//.- (v|
|00001690| 6f 69 64 29 20 72 65 6d | 6f 76 65 46 6f 6c 64 65 |oid) rem|oveFolde|
|000016a0| 72 46 72 6f 6d 4f 70 65 | 6e 65 64 46 6f 6c 64 65 |rFromOpe|nedFolde|
|000016b0| 72 73 3a 20 28 46 6f 6c | 64 65 72 20 2a 29 20 74 |rs: (Fol|der *) t|
|000016c0| 68 65 46 6f 6c 64 65 72 | 0a 7b 0a 20 20 5b 66 6f |heFolder|.{. [fo|
|000016d0| 6c 64 65 72 73 20 72 65 | 6d 6f 76 65 4f 62 6a 65 |lders re|moveObje|
|000016e0| 63 74 46 6f 72 4b 65 79 | 3a 20 5b 28 4c 6f 63 61 |ctForKey|: [(Loca|
|000016f0| 6c 46 6f 6c 64 65 72 20 | 2a 29 74 68 65 46 6f 6c |lFolder |*)theFol|
|00001700| 64 65 72 20 6e 61 6d 65 | 5d 5d 3b 0a 7d 0a 0a 0a |der name|]];.}...|
|00001710| 2f 2f 0a 2f 2f 0a 2f 2f | 0a 2d 20 28 42 4f 4f 4c |//.//.//|.- (BOOL|
|00001720| 29 20 66 6f 6c 64 65 72 | 46 6f 72 4e 61 6d 65 49 |) folder|ForNameI|
|00001730| 73 4f 70 65 6e 3a 20 28 | 4e 53 53 74 72 69 6e 67 |sOpen: (|NSString|
|00001740| 20 2a 29 20 74 68 65 4e | 61 6d 65 0a 7b 0a 20 20 | *) theN|ame.{. |
|00001750| 4e 53 45 6e 75 6d 65 72 | 61 74 6f 72 20 2a 61 6e |NSEnumer|ator *an|
|00001760| 45 6e 75 6d 65 72 61 74 | 6f 72 3b 0a 20 20 4e 53 |Enumerat|or;. NS|
|00001770| 53 74 72 69 6e 67 20 2a | 61 4e 61 6d 65 3b 0a 20 |String *|aName;. |
|00001780| 20 0a 20 20 61 6e 45 6e | 75 6d 65 72 61 74 6f 72 | . anEn|umerator|
|00001790| 20 3d 20 5b 73 65 6c 66 | 20 6f 70 65 6e 65 64 46 | = [self| openedF|
|000017a0| 6f 6c 64 65 72 73 45 6e | 75 6d 65 72 61 74 6f 72 |oldersEn|umerator|
|000017b0| 5d 3b 0a 0a 20 20 77 68 | 69 6c 65 20 28 20 28 61 |];.. wh|ile ( (a|
|000017c0| 4e 61 6d 65 20 3d 20 5b | 61 6e 45 6e 75 6d 65 72 |Name = [|anEnumer|
|000017d0| 61 74 6f 72 20 6e 65 78 | 74 4f 62 6a 65 63 74 5d |ator nex|tObject]|
|000017e0| 29 20 29 0a 20 20 20 20 | 7b 0a 20 20 20 20 20 20 |) ). |{. |
|000017f0| 69 66 20 28 20 5b 61 4e | 61 6d 65 20 63 6f 6d 70 |if ( [aN|ame comp|
|00001800| 61 72 65 3a 20 74 68 65 | 4e 61 6d 65 5d 20 3d 3d |are: the|Name] ==|
|00001810| 20 4e 53 4f 72 64 65 72 | 65 64 53 61 6d 65 29 0a | NSOrder|edSame).|
|00001820| 09 7b 0a 09 20 20 72 65 | 74 75 72 6e 20 59 45 53 |.{.. re|turn YES|
|00001830| 3b 0a 09 7d 0a 20 20 20 | 20 7d 0a 0a 20 20 72 65 |;..}. | }.. re|
|00001840| 74 75 72 6e 20 4e 4f 3b | 0a 7d 0a 0a 0a 2f 2f 0a |turn NO;|.}...//.|
|00001850| 2f 2f 0a 2f 2f 0a 2d 20 | 28 69 6e 74 29 20 66 6f |//.//.- |(int) fo|
|00001860| 6c 64 65 72 54 79 70 65 | 46 6f 72 46 6f 6c 64 65 |lderType|ForFolde|
|00001870| 72 4e 61 6d 65 3a 20 28 | 4e 53 53 74 72 69 6e 67 |rName: (|NSString|
|00001880| 20 2a 29 20 74 68 65 4e | 61 6d 65 0a 7b 0a 20 20 | *) theN|ame.{. |
|00001890| 4e 53 53 74 72 69 6e 67 | 20 2a 61 53 74 72 69 6e |NSString| *aStrin|
|000018a0| 67 3b 0a 20 20 42 4f 4f | 4c 20 69 73 44 69 72 3b |g;. BOO|L isDir;|
|000018b0| 0a 0a 20 20 61 53 74 72 | 69 6e 67 20 3d 20 5b 4e |.. aStr|ing = [N|
|000018c0| 53 53 74 72 69 6e 67 20 | 73 74 72 69 6e 67 57 69 |SString |stringWi|
|000018d0| 74 68 46 6f 72 6d 61 74 | 3a 20 40 22 25 40 2f 25 |thFormat|: @"%@/%|
|000018e0| 40 22 2c 20 5b 73 65 6c | 66 20 70 61 74 68 5d 2c |@", [sel|f path],|
|000018f0| 20 74 68 65 4e 61 6d 65 | 5d 3b 0a 20 20 0a 20 20 | theName|];. . |
|00001900| 5b 5b 4e 53 46 69 6c 65 | 4d 61 6e 61 67 65 72 20 |[[NSFile|Manager |
|00001910| 64 65 66 61 75 6c 74 4d | 61 6e 61 67 65 72 5d 20 |defaultM|anager] |
|00001920| 66 69 6c 65 45 78 69 73 | 74 73 41 74 50 61 74 68 |fileExis|tsAtPath|
|00001930| 3a 20 61 53 74 72 69 6e | 67 0a 09 09 09 09 20 20 |: aStrin|g..... |
|00001940| 69 73 44 69 72 65 63 74 | 6f 72 79 3a 20 26 69 73 |isDirect|ory: &is|
|00001950| 44 69 72 5d 3b 0a 20 20 | 0a 20 20 69 66 20 28 20 |Dir];. |. if ( |
|00001960| 69 73 44 69 72 20 29 0a | 20 20 20 20 7b 0a 20 20 |isDir ).| {. |
|00001970| 20 20 20 20 72 65 74 75 | 72 6e 20 48 4f 4c 44 53 | retu|rn HOLDS|
|00001980| 5f 46 4f 4c 44 45 52 53 | 3b 0a 20 20 20 20 7d 0a |_FOLDERS|;. }.|
|00001990| 0a 20 20 72 65 74 75 72 | 6e 20 48 4f 4c 44 53 5f |. retur|n HOLDS_|
|000019a0| 4d 45 53 53 41 47 45 53 | 3b 0a 7d 0a 0a 0a 2f 2f |MESSAGES|;.}...//|
|000019b0| 0a 2f 2f 0a 2f 2f 0a 2d | 20 28 4e 53 53 74 72 69 |.//.//.-| (NSStri|
|000019c0| 6e 67 20 2a 29 20 66 6f | 6c 64 65 72 53 65 70 61 |ng *) fo|lderSepa|
|000019d0| 72 61 74 6f 72 0a 7b 0a | 20 20 72 65 74 75 72 6e |rator.{.| return|
|000019e0| 20 40 22 2f 22 3b 0a 7d | 0a 0a 0a 2f 2f 0a 2f 2f | @"/";.}|...//.//|
|000019f0| 20 74 68 65 4e 61 6d 65 | 20 6d 75 73 74 20 62 65 | theName| must be|
|00001a00| 20 74 68 65 20 66 75 6c | 6c 20 70 61 74 68 20 6f | the ful|l path o|
|00001a10| 66 20 74 68 65 20 6d 61 | 69 6c 62 6f 78 2e 0a 2f |f the ma|ilbox../|
|00001a20| 2f 0a 2f 2f 20 52 65 74 | 75 72 6e 73 20 59 45 53 |/.// Ret|urns YES|
|00001a30| 20 6f 6e 20 73 75 63 63 | 65 73 73 2e 20 4e 4f 20 | on succ|ess. NO |
|00001a40| 6f 74 68 65 72 77 69 73 | 65 2e 0a 2f 2f 0a 2d 20 |otherwis|e..//.- |
|00001a50| 28 42 4f 4f 4c 29 20 63 | 72 65 61 74 65 46 6f 6c |(BOOL) c|reateFol|
|00001a60| 64 65 72 57 69 74 68 4e | 61 6d 65 3a 20 28 4e 53 |derWithN|ame: (NS|
|00001a70| 53 74 72 69 6e 67 20 2a | 29 20 74 68 65 4e 61 6d |String *|) theNam|
|00001a80| 65 0a 7b 0a 20 20 4e 53 | 53 74 72 69 6e 67 20 2a |e.{. NS|String *|
|00001a90| 61 4e 61 6d 65 2c 20 2a | 70 61 74 68 54 6f 46 69 |aName, *|pathToFi|
|00001aa0| 6c 65 3b 0a 20 20 42 4f | 4f 4c 20 61 42 4f 4f 4c |le;. BO|OL aBOOL|
|00001ab0| 2c 20 69 73 44 69 72 3b | 0a 0a 20 20 4e 53 46 69 |, isDir;|.. NSFi|
|00001ac0| 6c 65 4d 61 6e 61 67 65 | 72 20 2a 61 46 69 6c 65 |leManage|r *aFile|
|00001ad0| 4d 61 6e 61 67 65 72 3b | 0a 20 20 4e 53 45 6e 75 |Manager;|. NSEnu|
|00001ae0| 6d 65 72 61 74 6f 72 20 | 2a 61 6e 45 6e 75 6d 65 |merator |*anEnume|
|00001af0| 72 61 74 6f 72 3b 0a 0a | 20 20 61 46 69 6c 65 4d |rator;..| aFileM|
|00001b00| 61 6e 61 67 65 72 20 3d | 20 5b 4e 53 46 69 6c 65 |anager =| [NSFile|
|00001b10| 4d 61 6e 61 67 65 72 20 | 64 65 66 61 75 6c 74 4d |Manager |defaultM|
|00001b20| 61 6e 61 67 65 72 5d 3b | 0a 20 20 61 6e 45 6e 75 |anager];|. anEnu|
|00001b30| 6d 65 72 61 74 6f 72 20 | 3d 20 5b 73 65 6c 66 20 |merator |= [self |
|00001b40| 66 6f 6c 64 65 72 45 6e | 75 6d 65 72 61 74 6f 72 |folderEn|umerator|
|00001b50| 5d 3b 0a 20 20 0a 20 20 | 70 61 74 68 54 6f 46 69 |];. . |pathToFi|
|00001b60| 6c 65 20 3d 20 5b 4e 53 | 53 74 72 69 6e 67 20 73 |le = [NS|String s|
|00001b70| 74 72 69 6e 67 57 69 74 | 68 46 6f 72 6d 61 74 3a |tringWit|hFormat:|
|00001b80| 20 40 22 25 40 2f 25 40 | 22 2c 20 5b 73 65 6c 66 | @"%@/%@|", [self|
|00001b90| 20 70 61 74 68 5d 2c 20 | 74 68 65 4e 61 6d 65 5d | path], |theName]|
|00001ba0| 3b 0a 20 20 70 61 74 68 | 54 6f 46 69 6c 65 20 3d |;. path|ToFile =|
|00001bb0| 20 5b 70 61 74 68 54 6f | 46 69 6c 65 20 73 75 62 | [pathTo|File sub|
|00001bc0| 73 74 72 69 6e 67 54 6f | 49 6e 64 65 78 3a 20 28 |stringTo|Index: (|
|00001bd0| 5b 70 61 74 68 54 6f 46 | 69 6c 65 20 6c 65 6e 67 |[pathToF|ile leng|
|00001be0| 74 68 5d 20 2d 20 5b 5b | 70 61 74 68 54 6f 46 69 |th] - [[|pathToFi|
|00001bf0| 6c 65 20 6c 61 73 74 50 | 61 74 68 43 6f 6d 70 6f |le lastP|athCompo|
|00001c00| 6e 65 6e 74 5d 20 6c 65 | 6e 67 74 68 5d 20 2d 20 |nent] le|ngth] - |
|00001c10| 31 29 5d 3b 0a 20 20 61 | 42 4f 4f 4c 20 3d 20 4e |1)];. a|BOOL = N|
|00001c20| 4f 3b 0a 20 20 0a 20 20 | 2f 2f 20 57 65 20 76 65 |O;. . |// We ve|
|00001c30| 72 69 66 79 20 69 66 20 | 74 68 65 20 66 6f 6c 64 |rify if |the fold|
|00001c40| 65 72 20 77 69 74 68 20 | 74 68 61 74 20 6e 61 6d |er with |that nam|
|00001c50| 65 20 64 6f 65 73 20 61 | 6c 72 65 61 64 79 20 65 |e does a|lready e|
|00001c60| 78 69 73 74 0a 20 20 77 | 68 69 6c 65 20 28 20 28 |xist. w|hile ( (|
|00001c70| 61 4e 61 6d 65 20 3d 20 | 5b 61 6e 45 6e 75 6d 65 |aName = |[anEnume|
|00001c80| 72 61 74 6f 72 20 6e 65 | 78 74 4f 62 6a 65 63 74 |rator ne|xtObject|
|00001c90| 5d 29 20 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 20 |]) ). | {. |
|00001ca0| 20 69 66 20 28 5b 61 4e | 61 6d 65 20 63 6f 6d 70 | if ([aN|ame comp|
|00001cb0| 61 72 65 3a 20 74 68 65 | 4e 61 6d 65 0a 09 09 20 |are: the|Name... |
|00001cc0| 6f 70 74 69 6f 6e 73 3a | 20 4e 53 43 61 73 65 49 |options:| NSCaseI|
|00001cd0| 6e 73 65 6e 73 69 74 69 | 76 65 53 65 61 72 63 68 |nsensiti|veSearch|
|00001ce0| 5d 20 3d 3d 20 4e 53 4f | 72 64 65 72 65 64 53 61 |] == NSO|rderedSa|
|00001cf0| 6d 65 29 0a 09 7b 0a 09 | 20 20 72 65 74 75 72 6e |me)..{..| return|
|00001d00| 20 4e 4f 3b 0a 09 7d 0a | 20 20 20 20 7d 0a 0a 20 | NO;..}.| }.. |
|00001d10| 20 2f 2f 20 4f 6b 2c 20 | 74 68 65 20 66 6f 6c 64 | // Ok, |the fold|
|00001d20| 65 72 20 64 6f 65 73 6e | 27 74 20 61 6c 72 65 61 |er doesn|'t alrea|
|00001d30| 64 79 20 65 78 69 73 74 | 2e 0a 20 20 69 66 20 28 |dy exist|.. if (|
|00001d40| 20 5b 61 46 69 6c 65 4d | 61 6e 61 67 65 72 20 66 | [aFileM|anager f|
|00001d50| 69 6c 65 45 78 69 73 74 | 73 41 74 50 61 74 68 3a |ileExist|sAtPath:|
|00001d60| 20 70 61 74 68 54 6f 46 | 69 6c 65 0a 09 09 20 20 | pathToF|ile... |
|00001d70| 20 20 20 69 73 44 69 72 | 65 63 74 6f 72 79 3a 20 | isDir|ectory: |
|00001d80| 26 69 73 44 69 72 5d 20 | 29 0a 20 20 20 20 7b 0a |&isDir] |). {.|
|00001d90| 20 20 20 20 20 20 69 6e | 74 20 73 69 7a 65 3b 0a | in|t size;.|
|00001da0| 20 20 20 20 20 20 0a 20 | 20 20 20 20 20 73 69 7a | . | siz|
|00001db0| 65 20 3d 20 5b 5b 5b 61 | 46 69 6c 65 4d 61 6e 61 |e = [[[a|FileMana|
|00001dc0| 67 65 72 20 66 69 6c 65 | 41 74 74 72 69 62 75 74 |ger file|Attribut|
|00001dd0| 65 73 41 74 50 61 74 68 | 3a 20 70 61 74 68 54 6f |esAtPath|: pathTo|
|00001de0| 46 69 6c 65 0a 09 09 09 | 20 20 20 20 20 74 72 61 |File....| tra|
|00001df0| 76 65 72 73 65 4c 69 6e | 6b 3a 20 4e 4f 5d 20 6f |verseLin|k: NO] o|
|00001e00| 62 6a 65 63 74 46 6f 72 | 4b 65 79 3a 20 4e 53 46 |bjectFor|Key: NSF|
|00001e10| 69 6c 65 53 69 7a 65 5d | 20 69 6e 74 56 61 6c 75 |ileSize]| intValu|
|00001e20| 65 5d 3b 0a 20 20 20 20 | 20 20 0a 20 20 20 20 20 |e];. | . |
|00001e30| 20 2f 2f 20 49 66 20 77 | 65 20 67 6f 74 20 61 6e | // If w|e got an|
|00001e40| 20 65 6d 70 74 79 20 66 | 69 6c 65 20 6f 72 20 73 | empty f|ile or s|
|00001e50| 69 6d 70 6c 79 20 61 20 | 64 69 72 65 63 74 6f 72 |imply a |director|
|00001e60| 79 2e 2e 2e 0a 20 20 20 | 20 20 20 69 66 20 28 20 |y.... | if ( |
|00001e70| 73 69 7a 65 20 3d 3d 20 | 30 20 7c 7c 20 69 73 44 |size == |0 || isD|
|00001e80| 69 72 20 29 0a 09 7b 20 | 0a 09 20 20 2f 2f 20 49 |ir )..{ |.. // I|
|00001e90| 66 20 74 68 65 20 73 69 | 7a 65 20 69 73 20 30 2c |f the si|ze is 0,|
|00001ea0| 20 74 68 61 74 20 6d 65 | 61 6e 73 20 77 65 20 68 | that me|ans we h|
|00001eb0| 61 76 65 20 61 6e 20 65 | 6d 70 74 79 20 66 69 6c |ave an e|mpty fil|
|00001ec0| 65 2e 20 57 65 20 66 69 | 72 73 74 20 63 6f 6e 76 |e. We fi|rst conv|
|00001ed0| 65 72 74 20 74 68 69 73 | 0a 09 20 20 2f 2f 20 66 |ert this|.. // f|
|00001ee0| 69 6c 65 20 74 6f 20 61 | 20 64 69 72 65 63 74 6f |ile to a| directo|
|00001ef0| 72 79 2e 0a 09 20 20 69 | 66 20 28 20 73 69 7a 65 |ry... i|f ( size|
|00001f00| 20 3d 3d 20 30 20 29 0a | 09 20 20 20 20 7b 0a 09 | == 0 ).|. {..|
|00001f10| 20 20 20 20 20 20 5b 61 | 46 69 6c 65 4d 61 6e 61 | [a|FileMana|
|00001f20| 67 65 72 20 72 65 6d 6f | 76 65 46 69 6c 65 41 74 |ger remo|veFileAt|
|00001f30| 50 61 74 68 3a 20 70 61 | 74 68 54 6f 46 69 6c 65 |Path: pa|thToFile|
|00001f40| 20 20 68 61 6e 64 6c 65 | 72 3a 20 6e 69 6c 5d 3b | handle|r: nil];|
|00001f50| 0a 09 20 20 20 20 20 20 | 5b 61 46 69 6c 65 4d 61 |.. |[aFileMa|
|00001f60| 6e 61 67 65 72 20 63 72 | 65 61 74 65 44 69 72 65 |nager cr|eateDire|
|00001f70| 63 74 6f 72 79 41 74 50 | 61 74 68 3a 20 70 61 74 |ctoryAtP|ath: pat|
|00001f80| 68 54 6f 46 69 6c 65 20 | 20 61 74 74 72 69 62 75 |hToFile | attribu|
|00001f90| 74 65 73 3a 20 6e 69 6c | 5d 3b 0a 09 20 20 20 20 |tes: nil|];.. |
|00001fa0| 7d 0a 09 20 20 0a 09 20 | 20 2f 2f 20 57 65 20 63 |}.. .. | // We c|
|00001fb0| 61 6e 20 6e 6f 77 20 70 | 72 6f 63 65 65 64 20 77 |an now p|roceed w|
|00001fc0| 69 74 68 20 74 68 65 20 | 63 72 65 61 74 69 6f 6e |ith the |creation|
|00001fd0| 20 6f 66 20 6f 75 72 20 | 6d 62 6f 78 0a 09 20 20 | of our |mbox.. |
|00001fe0| 61 42 4f 4f 4c 20 3d 20 | 5b 61 46 69 6c 65 4d 61 |aBOOL = |[aFileMa|
|00001ff0| 6e 61 67 65 72 20 63 72 | 65 61 74 65 46 69 6c 65 |nager cr|eateFile|
|00002000| 41 74 50 61 74 68 3a 20 | 5b 4e 53 53 74 72 69 6e |AtPath: |[NSStrin|
|00002010| 67 20 73 74 72 69 6e 67 | 57 69 74 68 46 6f 72 6d |g string|WithForm|
|00002020| 61 74 3a 20 40 22 25 40 | 2f 25 40 22 2c 0a 09 09 |at: @"%@|/%@",...|
|00002030| 09 09 09 09 09 20 20 20 | 20 5b 73 65 6c 66 20 70 |..... | [self p|
|00002040| 61 74 68 5d 2c 20 74 68 | 65 4e 61 6d 65 5d 0a 09 |ath], th|eName]..|
|00002050| 09 09 09 63 6f 6e 74 65 | 6e 74 73 3a 20 6e 69 6c |...conte|nts: nil|
|00002060| 20 0a 09 09 09 09 61 74 | 74 72 69 62 75 74 65 73 | .....at|tributes|
|00002070| 3a 20 6e 69 6c 20 5d 3b | 0a 0a 09 20 20 2f 2f 20 |: nil ];|... // |
|00002080| 57 65 20 6e 6f 77 20 65 | 6e 66 6f 72 63 65 20 74 |We now e|nforce t|
|00002090| 68 65 20 6d 6f 64 65 20 | 28 30 36 30 30 29 20 6f |he mode |(0600) o|
|000020a0| 6e 20 74 68 69 73 20 6e | 65 77 20 6d 61 69 6c 62 |n this n|ew mailb|
|000020b0| 6f 78 0a 09 20 20 5b 73 | 65 6c 66 20 5f 65 6e 66 |ox.. [s|elf _enf|
|000020c0| 6f 72 63 65 4d 6f 64 65 | 3a 20 30 36 30 30 0a 09 |orceMode|: 0600..|
|000020d0| 09 61 74 50 61 74 68 3a | 20 5b 4e 53 53 74 72 69 |.atPath:| [NSStri|
|000020e0| 6e 67 20 73 74 72 69 6e | 67 57 69 74 68 46 6f 72 |ng strin|gWithFor|
|000020f0| 6d 61 74 3a 20 40 22 25 | 40 2f 25 40 22 2c 20 5b |mat: @"%|@/%@", [|
|00002100| 73 65 6c 66 20 70 61 74 | 68 5d 2c 20 74 68 65 4e |self pat|h], theN|
|00002110| 61 6d 65 5d 5d 3b 0a 09 | 7d 0a 20 20 20 20 20 20 |ame]];..|}. |
|00002120| 65 6c 73 65 0a 09 7b 0a | 09 20 20 61 42 4f 4f 4c |else..{.|. aBOOL|
|00002130| 20 3d 20 4e 4f 3b 0a 09 | 7d 0a 20 20 20 20 7d 0a | = NO;..|}. }.|
|00002140| 09 20 20 20 20 20 20 0a | 20 20 72 65 74 75 72 6e |. .| return|
|00002150| 20 61 42 4f 4f 4c 3b 0a | 7d 0a 0a 0a 2f 2f 0a 2f | aBOOL;.|}...//./|
|00002160| 2f 20 74 68 65 4e 61 6d | 65 20 6d 75 73 74 20 62 |/ theNam|e must b|
|00002170| 65 20 74 68 65 20 66 75 | 6c 6c 20 70 61 74 68 20 |e the fu|ll path |
|00002180| 6f 66 20 74 68 65 20 6d | 61 69 6c 62 6f 78 2e 0a |of the m|ailbox..|
|00002190| 2f 2f 0a 2f 2f 20 52 65 | 74 75 72 6e 73 20 59 45 |//.// Re|turns YE|
|000021a0| 53 20 6f 6e 20 73 75 63 | 63 65 73 73 2e 20 4e 4f |S on suc|cess. NO|
|000021b0| 20 6f 74 68 65 72 77 69 | 73 65 2e 0a 2f 2f 0a 2d | otherwi|se..//.-|
|000021c0| 20 28 42 4f 4f 4c 29 20 | 64 65 6c 65 74 65 46 6f | (BOOL) |deleteFo|
|000021d0| 6c 64 65 72 57 69 74 68 | 4e 61 6d 65 3a 20 28 4e |lderWith|Name: (N|
|000021e0| 53 53 74 72 69 6e 67 20 | 2a 29 20 74 68 65 4e 61 |SString |*) theNa|
|000021f0| 6d 65 0a 7b 0a 20 20 4e | 53 46 69 6c 65 4d 61 6e |me.{. N|SFileMan|
|00002200| 61 67 65 72 20 2a 61 46 | 69 6c 65 4d 61 6e 61 67 |ager *aF|ileManag|
|00002210| 65 72 3b 0a 20 20 42 4f | 4f 4c 20 61 42 4f 4f 4c |er;. BO|OL aBOOL|
|00002220| 2c 20 69 73 44 69 72 3b | 0a 20 20 0a 20 20 61 46 |, isDir;|. . aF|
|00002230| 69 6c 65 4d 61 6e 61 67 | 65 72 20 3d 20 5b 4e 53 |ileManag|er = [NS|
|00002240| 46 69 6c 65 4d 61 6e 61 | 67 65 72 20 64 65 66 61 |FileMana|ger defa|
|00002250| 75 6c 74 4d 61 6e 61 67 | 65 72 5d 3b 0a 20 20 61 |ultManag|er];. a|
|00002260| 42 4f 4f 4c 20 3d 20 4e | 4f 3b 0a 0a 20 20 69 66 |BOOL = N|O;.. if|
|00002270| 20 28 20 5b 61 46 69 6c | 65 4d 61 6e 61 67 65 72 | ( [aFil|eManager|
|00002280| 20 66 69 6c 65 45 78 69 | 73 74 73 41 74 50 61 74 | fileExi|stsAtPat|
|00002290| 68 3a 20 5b 4e 53 53 74 | 72 69 6e 67 20 73 74 72 |h: [NSSt|ring str|
|000022a0| 69 6e 67 57 69 74 68 46 | 6f 72 6d 61 74 3a 20 40 |ingWithF|ormat: @|
|000022b0| 22 25 40 2f 25 40 22 2c | 20 5b 73 65 6c 66 20 70 |"%@/%@",| [self p|
|000022c0| 61 74 68 5d 2c 20 74 68 | 65 4e 61 6d 65 5d 0a 09 |ath], th|eName]..|
|000022d0| 09 20 20 20 20 20 69 73 | 44 69 72 65 63 74 6f 72 |. is|Director|
|000022e0| 79 3a 20 26 69 73 44 69 | 72 5d 20 29 0a 20 20 20 |y: &isDi|r] ). |
|000022f0| 20 7b 0a 20 20 20 20 20 | 20 69 66 20 28 20 69 73 | {. | if ( is|
|00002300| 44 69 72 20 29 0a 09 7b | 0a 09 20 20 4e 53 45 6e |Dir )..{|.. NSEn|
|00002310| 75 6d 65 72 61 74 6f 72 | 20 2a 74 68 65 45 6e 75 |umerator| *theEnu|
|00002320| 6d 65 72 61 74 6f 72 3b | 0a 0a 09 20 20 74 68 65 |merator;|... the|
|00002330| 45 6e 75 6d 65 72 61 74 | 6f 72 20 3d 20 5b 61 46 |Enumerat|or = [aF|
|00002340| 69 6c 65 4d 61 6e 61 67 | 65 72 20 65 6e 75 6d 65 |ileManag|er enume|
|00002350| 72 61 74 6f 72 41 74 50 | 61 74 68 3a 20 5b 4e 53 |ratorAtP|ath: [NS|
|00002360| 53 74 72 69 6e 67 20 73 | 74 72 69 6e 67 57 69 74 |String s|tringWit|
|00002370| 68 46 6f 72 6d 61 74 3a | 20 40 22 25 40 2f 25 40 |hFormat:| @"%@/%@|
|00002380| 22 2c 0a 09 09 09 09 09 | 09 09 09 20 20 20 20 5b |",......|... [|
|00002390| 73 65 6c 66 20 70 61 74 | 68 5d 2c 20 74 68 65 4e |self pat|h], theN|
|000023a0| 61 6d 65 5d 5d 3b 0a 09 | 20 20 0a 09 20 20 2f 2f |ame]];..| .. //|
|000023b0| 20 46 49 58 4d 45 20 2d | 20 56 65 72 69 66 79 20 | FIXME -| Verify |
|000023c0| 74 68 65 20 53 74 6f 72 | 65 27 73 20 70 61 74 68 |the Stor|e's path|
|000023d0| 2e 0a 09 20 20 2f 2f 20 | 49 66 20 69 74 20 64 6f |... // |If it do|
|000023e0| 65 73 6e 27 74 20 63 6f | 6e 74 61 69 6e 20 61 6e |esn't co|ntain an|
|000023f0| 79 20 6d 61 69 6c 62 6f | 78 65 73 20 61 6e 64 20 |y mailbo|xes and |
|00002400| 69 74 27 73 20 61 63 74 | 75 61 6c 6c 79 20 6e 6f |it's act|ually no|
|00002410| 74 20 6f 72 20 53 74 6f | 72 65 27 73 20 70 61 74 |t or Sto|re's pat|
|00002420| 68 2c 20 77 65 20 72 65 | 6d 6f 76 65 20 69 74 2e |h, we re|move it.|
|00002430| 0a 09 20 20 69 66 20 28 | 20 5b 5b 74 68 65 45 6e |.. if (| [[theEn|
|00002440| 75 6d 65 72 61 74 6f 72 | 20 61 6c 6c 4f 62 6a 65 |umerator| allObje|
|00002450| 63 74 73 5d 20 63 6f 75 | 6e 74 5d 20 3d 3d 20 30 |cts] cou|nt] == 0|
|00002460| 20 29 0a 09 20 20 20 20 | 7b 0a 09 20 20 20 20 20 | ).. |{.. |
|00002470| 20 72 65 74 75 72 6e 20 | 5b 61 46 69 6c 65 4d 61 | return |[aFileMa|
|00002480| 6e 61 67 65 72 20 72 65 | 6d 6f 76 65 46 69 6c 65 |nager re|moveFile|
|00002490| 41 74 50 61 74 68 3a 20 | 5b 4e 53 53 74 72 69 6e |AtPath: |[NSStrin|
|000024a0| 67 20 73 74 72 69 6e 67 | 57 69 74 68 46 6f 72 6d |g string|WithForm|
|000024b0| 61 74 3a 20 40 22 25 40 | 2f 25 40 22 2c 0a 09 09 |at: @"%@|/%@",...|
|000024c0| 09 09 09 09 09 20 20 20 | 20 20 20 20 5b 73 65 6c |..... | [sel|
|000024d0| 66 20 70 61 74 68 5d 2c | 20 74 68 65 4e 61 6d 65 |f path],| theName|
|000024e0| 5d 0a 09 09 09 09 20 20 | 20 68 61 6e 64 6c 65 72 |]..... | handler|
|000024f0| 3a 20 6e 69 6c 5d 3b 0a | 09 20 20 20 20 7d 0a 09 |: nil];.|. }..|
|00002500| 20 20 65 6c 73 65 0a 09 | 20 20 20 20 7b 0a 09 20 | else..| {.. |
|00002510| 20 20 20 20 20 72 65 74 | 75 72 6e 20 4e 4f 3b 0a | ret|urn NO;.|
|00002520| 09 20 20 20 20 7d 0a 09 | 7d 0a 0a 20 20 20 20 20 |. }..|}.. |
|00002530| 20 2f 2f 20 57 65 20 72 | 65 6d 6f 76 65 20 74 68 | // We r|emove th|
|00002540| 65 20 6d 62 6f 78 0a 20 | 20 20 20 20 20 61 42 4f |e mbox. | aBO|
|00002550| 4f 4c 20 3d 20 5b 61 46 | 69 6c 65 4d 61 6e 61 67 |OL = [aF|ileManag|
|00002560| 65 72 20 72 65 6d 6f 76 | 65 46 69 6c 65 41 74 50 |er remov|eFileAtP|
|00002570| 61 74 68 3a 20 5b 4e 53 | 53 74 72 69 6e 67 20 73 |ath: [NS|String s|
|00002580| 74 72 69 6e 67 57 69 74 | 68 46 6f 72 6d 61 74 3a |tringWit|hFormat:|
|00002590| 20 40 22 25 40 2f 25 40 | 22 2c 0a 09 09 09 09 09 | @"%@/%@|",......|
|000025a0| 09 09 5b 73 65 6c 66 20 | 70 61 74 68 5d 2c 20 74 |..[self |path], t|
|000025b0| 68 65 4e 61 6d 65 5d 0a | 09 09 09 20 20 20 20 68 |heName].|... h|
|000025c0| 61 6e 64 6c 65 72 3a 20 | 6e 69 6c 5d 3b 0a 20 20 |andler: |nil];. |
|000025d0| 20 20 20 20 0a 20 20 20 | 20 20 20 2f 2f 20 57 65 | . | // We|
|000025e0| 20 72 65 6d 6f 76 65 20 | 74 68 65 20 63 61 63 68 | remove |the cach|
|000025f0| 65 2c 20 69 66 20 74 68 | 65 20 6d 62 6f 78 20 64 |e, if th|e mbox d|
|00002600| 65 6c 65 74 69 6f 6e 20 | 77 61 73 20 73 75 63 63 |eletion |was succ|
|00002610| 65 73 73 66 75 6c 0a 20 | 20 20 20 20 20 69 66 20 |essful. | if |
|00002620| 28 20 61 42 4f 4f 4c 20 | 29 0a 09 7b 0a 09 20 20 |( aBOOL |)..{.. |
|00002630| 4e 53 53 74 72 69 6e 67 | 20 2a 61 53 74 72 69 6e |NSString| *aStrin|
|00002640| 67 3b 0a 0a 09 20 20 61 | 53 74 72 69 6e 67 20 3d |g;... a|String =|
|00002650| 20 5b 74 68 65 4e 61 6d | 65 20 6c 61 73 74 50 61 | [theNam|e lastPa|
|00002660| 74 68 43 6f 6d 70 6f 6e | 65 6e 74 5d 3b 0a 09 20 |thCompon|ent];.. |
|00002670| 20 0a 09 20 20 5b 5b 4e | 53 46 69 6c 65 4d 61 6e | .. [[N|SFileMan|
|00002680| 61 67 65 72 20 64 65 66 | 61 75 6c 74 4d 61 6e 61 |ager def|aultMana|
|00002690| 67 65 72 5d 20 72 65 6d | 6f 76 65 46 69 6c 65 41 |ger] rem|oveFileA|
|000026a0| 74 50 61 74 68 3a 20 5b | 4e 53 53 74 72 69 6e 67 |tPath: [|NSString|
|000026b0| 20 73 74 72 69 6e 67 57 | 69 74 68 46 6f 72 6d 61 | stringW|ithForma|
|000026c0| 74 3a 20 40 22 25 40 2f | 25 40 2e 25 40 2e 63 61 |t: @"%@/|%@.%@.ca|
|000026d0| 63 68 65 22 2c 0a 09 09 | 09 09 09 09 09 09 20 20 |che",...|...... |
|000026e0| 20 20 20 20 5b 73 65 6c | 66 20 70 61 74 68 5d 2c | [sel|f path],|
|000026f0| 0a 09 09 09 09 09 09 09 | 09 20 20 20 20 20 20 5b |........|. [|
|00002700| 74 68 65 4e 61 6d 65 20 | 73 75 62 73 74 72 69 6e |theName |substrin|
|00002710| 67 54 6f 49 6e 64 65 78 | 3a 0a 09 09 09 09 09 09 |gToIndex|:.......|
|00002720| 09 09 09 09 20 28 5b 74 | 68 65 4e 61 6d 65 20 6c |.... ([t|heName l|
|00002730| 65 6e 67 74 68 5d 20 2d | 20 5b 61 53 74 72 69 6e |ength] -| [aStrin|
|00002740| 67 20 6c 65 6e 67 74 68 | 5d 29 5d 2c 0a 09 09 09 |g length|])],....|
|00002750| 09 09 09 09 09 20 20 20 | 20 20 20 61 53 74 72 69 |..... | aStri|
|00002760| 6e 67 5d 0a 09 09 09 09 | 09 20 20 68 61 6e 64 6c |ng].....|. handl|
|00002770| 65 72 3a 20 6e 69 6c 5d | 3b 0a 09 7d 0a 20 20 20 |er: nil]|;..}. |
|00002780| 20 7d 0a 20 20 0a 20 20 | 72 65 74 75 72 6e 20 61 | }. . |return a|
|00002790| 42 4f 4f 4c 3b 0a 7d 0a | 0a 0a 2f 2f 0a 2f 2f 20 |BOOL;.}.|..//.// |
|000027a0| 74 68 65 4e 61 6d 65 20 | 61 6e 64 20 74 68 65 4e |theName |and theN|
|000027b0| 65 77 4e 61 6d 65 20 4d | 55 53 54 20 62 65 20 74 |ewName M|UST be t|
|000027c0| 68 65 20 66 75 6c 6c 20 | 70 61 74 68 20 6f 66 20 |he full |path of |
|000027d0| 74 68 6f 73 65 20 6d 61 | 69 6c 62 6f 78 65 73 2e |those ma|ilboxes.|
|000027e0| 0a 2f 2f 0a 2f 2f 20 52 | 65 74 75 72 6e 73 20 59 |.//.// R|eturns Y|
|000027f0| 45 53 20 6f 6e 20 73 75 | 63 63 65 73 73 2e 20 4e |ES on su|ccess. N|
|00002800| 4f 20 6f 74 68 65 72 77 | 69 73 65 2e 0a 2f 2f 0a |O otherw|ise..//.|
|00002810| 2d 20 28 42 4f 4f 4c 29 | 20 72 65 6e 61 6d 65 46 |- (BOOL)| renameF|
|00002820| 6f 6c 64 65 72 57 69 74 | 68 4e 61 6d 65 3a 20 28 |olderWit|hName: (|
|00002830| 4e 53 53 74 72 69 6e 67 | 20 2a 29 20 74 68 65 4e |NSString| *) theN|
|00002840| 61 6d 65 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ame. | |
|00002850| 20 20 20 20 20 20 20 20 | 20 20 20 74 6f 4e 61 6d | | toNam|
|00002860| 65 3a 20 28 4e 53 53 74 | 72 69 6e 67 20 2a 29 20 |e: (NSSt|ring *) |
|00002870| 74 68 65 4e 65 77 4e 61 | 6d 65 0a 7b 0a 20 20 4e |theNewNa|me.{. N|
|00002880| 53 46 69 6c 65 4d 61 6e | 61 67 65 72 20 2a 61 46 |SFileMan|ager *aF|
|00002890| 69 6c 65 4d 61 6e 61 67 | 65 72 3b 0a 20 20 42 4f |ileManag|er;. BO|
|000028a0| 4f 4c 20 61 42 4f 4f 4c | 2c 20 69 73 44 69 72 3b |OL aBOOL|, isDir;|
|000028b0| 0a 20 20 0a 20 20 61 46 | 69 6c 65 4d 61 6e 61 67 |. . aF|ileManag|
|000028c0| 65 72 20 3d 20 5b 4e 53 | 46 69 6c 65 4d 61 6e 61 |er = [NS|FileMana|
|000028d0| 67 65 72 20 64 65 66 61 | 75 6c 74 4d 61 6e 61 67 |ger defa|ultManag|
|000028e0| 65 72 5d 3b 0a 20 20 61 | 42 4f 4f 4c 20 3d 20 4e |er];. a|BOOL = N|
|000028f0| 4f 3b 0a 0a 20 20 69 66 | 20 28 20 5b 61 46 69 6c |O;.. if| ( [aFil|
|00002900| 65 4d 61 6e 61 67 65 72 | 20 66 69 6c 65 45 78 69 |eManager| fileExi|
|00002910| 73 74 73 41 74 50 61 74 | 68 3a 20 5b 4e 53 53 74 |stsAtPat|h: [NSSt|
|00002920| 72 69 6e 67 20 73 74 72 | 69 6e 67 57 69 74 68 46 |ring str|ingWithF|
|00002930| 6f 72 6d 61 74 3a 20 40 | 22 25 40 2f 25 40 22 2c |ormat: @|"%@/%@",|
|00002940| 20 5b 73 65 6c 66 20 70 | 61 74 68 5d 2c 20 74 68 | [self p|ath], th|
|00002950| 65 4e 61 6d 65 5d 0a 09 | 09 20 20 20 20 20 69 73 |eName]..|. is|
|00002960| 44 69 72 65 63 74 6f 72 | 79 3a 20 26 69 73 44 69 |Director|y: &isDi|
|00002970| 72 5d 20 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 20 |r] ). | {. |
|00002980| 20 69 66 20 28 20 69 73 | 44 69 72 20 29 0a 09 7b | if ( is|Dir )..{|
|00002990| 0a 09 20 20 4e 53 45 6e | 75 6d 65 72 61 74 6f 72 |.. NSEn|umerator|
|000029a0| 20 2a 74 68 65 45 6e 75 | 6d 65 72 61 74 6f 72 3b | *theEnu|merator;|
|000029b0| 0a 0a 09 20 20 74 68 65 | 45 6e 75 6d 65 72 61 74 |... the|Enumerat|
|000029c0| 6f 72 20 3d 20 5b 61 46 | 69 6c 65 4d 61 6e 61 67 |or = [aF|ileManag|
|000029d0| 65 72 20 65 6e 75 6d 65 | 72 61 74 6f 72 41 74 50 |er enume|ratorAtP|
|000029e0| 61 74 68 3a 20 5b 4e 53 | 53 74 72 69 6e 67 20 73 |ath: [NS|String s|
|000029f0| 74 72 69 6e 67 57 69 74 | 68 46 6f 72 6d 61 74 3a |tringWit|hFormat:|
|00002a00| 20 40 22 25 40 2f 25 40 | 22 2c 0a 09 09 09 09 09 | @"%@/%@|",......|
|00002a10| 09 09 09 20 20 20 20 5b | 73 65 6c 66 20 70 61 74 |... [|self pat|
|00002a20| 68 5d 2c 20 74 68 65 4e | 61 6d 65 5d 5d 3b 0a 09 |h], theN|ame]];..|
|00002a30| 20 20 0a 09 20 20 2f 2f | 20 46 49 58 4d 45 20 2d | .. //| FIXME -|
|00002a40| 20 56 65 72 69 66 79 20 | 74 68 65 20 53 74 6f 72 | Verify |the Stor|
|00002a50| 65 27 73 20 70 61 74 68 | 2e 0a 09 20 20 2f 2f 20 |e's path|... // |
|00002a60| 49 66 20 69 74 20 64 6f | 65 73 6e 27 74 20 63 6f |If it do|esn't co|
|00002a70| 6e 74 61 69 6e 20 61 6e | 79 20 6d 61 69 6c 62 6f |ntain an|y mailbo|
|00002a80| 78 65 73 20 61 6e 64 20 | 69 74 27 73 20 61 63 74 |xes and |it's act|
|00002a90| 75 61 6c 6c 79 20 6e 6f | 74 20 6f 72 20 53 74 6f |ually no|t or Sto|
|00002aa0| 72 65 27 73 20 70 61 74 | 68 2c 20 77 65 20 72 65 |re's pat|h, we re|
|00002ab0| 6e 61 6d 65 20 69 74 2e | 0a 09 20 20 69 66 20 28 |name it.|.. if (|
|00002ac0| 20 5b 5b 74 68 65 45 6e | 75 6d 65 72 61 74 6f 72 | [[theEn|umerator|
|00002ad0| 20 61 6c 6c 4f 62 6a 65 | 63 74 73 5d 20 63 6f 75 | allObje|cts] cou|
|00002ae0| 6e 74 5d 20 3d 3d 20 30 | 20 29 0a 09 20 20 20 20 |nt] == 0| ).. |
|00002af0| 7b 0a 09 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 |{.. | return |
|00002b00| 5b 61 46 69 6c 65 4d 61 | 6e 61 67 65 72 20 6d 6f |[aFileMa|nager mo|
|00002b10| 76 65 50 61 74 68 3a 20 | 5b 4e 53 53 74 72 69 6e |vePath: |[NSStrin|
|00002b20| 67 20 73 74 72 69 6e 67 | 57 69 74 68 46 6f 72 6d |g string|WithForm|
|00002b30| 61 74 3a 20 40 22 25 40 | 2f 25 40 22 2c 0a 09 09 |at: @"%@|/%@",...|
|00002b40| 09 09 09 09 20 20 20 20 | 20 20 20 5b 73 65 6c 66 |.... | [self|
|00002b50| 20 70 61 74 68 5d 2c 20 | 74 68 65 4e 61 6d 65 5d | path], |theName]|
|00002b60| 0a 09 09 09 09 20 20 20 | 74 6f 50 61 74 68 3a 20 |..... |toPath: |
|00002b70| 20 5b 4e 53 53 74 72 69 | 6e 67 20 73 74 72 69 6e | [NSStri|ng strin|
|00002b80| 67 57 69 74 68 46 6f 72 | 6d 61 74 3a 20 40 22 25 |gWithFor|mat: @"%|
|00002b90| 40 2f 25 40 22 2c 0a 09 | 09 09 09 09 09 20 20 20 |@/%@",..|..... |
|00002ba0| 20 20 20 5b 73 65 6c 66 | 20 70 61 74 68 5d 2c 20 | [self| path], |
|00002bb0| 74 68 65 4e 65 77 4e 61 | 6d 65 5d 0a 09 09 09 09 |theNewNa|me].....|
|00002bc0| 20 20 20 68 61 6e 64 6c | 65 72 3a 20 6e 69 6c 5d | handl|er: nil]|
|00002bd0| 3b 0a 09 20 20 20 20 7d | 0a 09 20 20 65 6c 73 65 |;.. }|.. else|
|00002be0| 0a 09 20 20 20 20 7b 0a | 09 20 20 20 20 20 20 72 |.. {.|. r|
|00002bf0| 65 74 75 72 6e 20 4e 4f | 3b 0a 09 20 20 20 20 7d |eturn NO|;.. }|
|00002c00| 0a 09 7d 0a 20 20 20 20 | 20 20 0a 20 20 20 20 20 |..}. | . |
|00002c10| 20 2f 2f 20 57 65 20 72 | 65 6e 61 6d 65 20 74 68 | // We r|ename th|
|00002c20| 65 20 6d 62 6f 78 0a 20 | 20 20 20 20 20 61 42 4f |e mbox. | aBO|
|00002c30| 4f 4c 20 3d 20 5b 61 46 | 69 6c 65 4d 61 6e 61 67 |OL = [aF|ileManag|
|00002c40| 65 72 20 6d 6f 76 65 50 | 61 74 68 3a 20 5b 4e 53 |er moveP|ath: [NS|
|00002c50| 53 74 72 69 6e 67 20 73 | 74 72 69 6e 67 57 69 74 |String s|tringWit|
|00002c60| 68 46 6f 72 6d 61 74 3a | 20 40 22 25 40 2f 25 40 |hFormat:| @"%@/%@|
|00002c70| 22 2c 0a 09 09 09 09 09 | 09 5b 73 65 6c 66 20 70 |",......|.[self p|
|00002c80| 61 74 68 5d 2c 20 74 68 | 65 4e 61 6d 65 5d 0a 09 |ath], th|eName]..|
|00002c90| 09 09 20 20 20 20 74 6f | 50 61 74 68 3a 20 5b 4e |.. to|Path: [N|
|00002ca0| 53 53 74 72 69 6e 67 20 | 73 74 72 69 6e 67 57 69 |SString |stringWi|
|00002cb0| 74 68 46 6f 72 6d 61 74 | 3a 20 40 22 25 40 2f 25 |thFormat|: @"%@/%|
|00002cc0| 40 22 2c 0a 09 09 09 09 | 09 20 20 20 20 20 20 5b |@",.....|. [|
|00002cd0| 73 65 6c 66 20 70 61 74 | 68 5d 2c 20 74 68 65 4e |self pat|h], theN|
|00002ce0| 65 77 4e 61 6d 65 5d 0a | 09 09 09 20 20 20 20 68 |ewName].|... h|
|00002cf0| 61 6e 64 6c 65 72 3a 20 | 6e 69 6c 5d 3b 0a 20 20 |andler: |nil];. |
|00002d00| 20 20 20 20 0a 20 20 20 | 20 20 20 2f 2f 20 57 65 | . | // We|
|00002d10| 20 72 65 6d 6f 76 65 20 | 74 68 65 20 63 61 63 68 | remove |the cach|
|00002d20| 65 2c 20 69 66 20 74 68 | 65 20 6d 62 6f 78 20 72 |e, if th|e mbox r|
|00002d30| 65 6e 61 6d 65 20 77 61 | 73 20 73 75 63 63 65 73 |ename wa|s succes|
|00002d40| 73 66 75 6c 0a 20 20 20 | 20 20 20 69 66 20 28 20 |sful. | if ( |
|00002d50| 61 42 4f 4f 4c 20 29 0a | 09 7b 0a 09 20 20 4e 53 |aBOOL ).|.{.. NS|
|00002d60| 53 74 72 69 6e 67 20 2a | 73 74 72 31 2c 20 2a 73 |String *|str1, *s|
|00002d70| 74 72 32 3b 0a 0a 09 20 | 20 73 74 72 31 20 3d 20 |tr2;... | str1 = |
|00002d80| 5b 74 68 65 4e 61 6d 65 | 20 6c 61 73 74 50 61 74 |[theName| lastPat|
|00002d90| 68 43 6f 6d 70 6f 6e 65 | 6e 74 5d 3b 0a 09 20 20 |hCompone|nt];.. |
|00002da0| 73 74 72 32 20 3d 20 5b | 74 68 65 4e 65 77 4e 61 |str2 = [|theNewNa|
|00002db0| 6d 65 20 6c 61 73 74 50 | 61 74 68 43 6f 6d 70 6f |me lastP|athCompo|
|00002dc0| 6e 65 6e 74 5d 3b 0a 09 | 20 20 0a 09 20 20 5b 5b |nent];..| .. [[|
|00002dd0| 4e 53 46 69 6c 65 4d 61 | 6e 61 67 65 72 20 64 65 |NSFileMa|nager de|
|00002de0| 66 61 75 6c 74 4d 61 6e | 61 67 65 72 5d 20 6d 6f |faultMan|ager] mo|
|00002df0| 76 65 50 61 74 68 3a 20 | 5b 4e 53 53 74 72 69 6e |vePath: |[NSStrin|
|00002e00| 67 20 73 74 72 69 6e 67 | 57 69 74 68 46 6f 72 6d |g string|WithForm|
|00002e10| 61 74 3a 20 40 22 25 40 | 2f 25 40 2e 25 40 2e 63 |at: @"%@|/%@.%@.c|
|00002e20| 61 63 68 65 22 2c 0a 09 | 09 09 09 09 09 09 20 20 |ache",..|...... |
|00002e30| 20 20 20 20 5b 73 65 6c | 66 20 70 61 74 68 5d 2c | [sel|f path],|
|00002e40| 0a 09 09 09 09 09 09 09 | 20 20 20 20 20 20 5b 74 |........| [t|
|00002e50| 68 65 4e 61 6d 65 20 73 | 75 62 73 74 72 69 6e 67 |heName s|ubstring|
|00002e60| 54 6f 49 6e 64 65 78 3a | 0a 09 09 09 09 09 09 09 |ToIndex:|........|
|00002e70| 09 09 20 28 5b 74 68 65 | 4e 61 6d 65 20 6c 65 6e |.. ([the|Name len|
|00002e80| 67 74 68 5d 20 2d 20 5b | 73 74 72 31 20 6c 65 6e |gth] - [|str1 len|
|00002e90| 67 74 68 5d 29 5d 2c 0a | 09 09 09 09 09 09 09 20 |gth])],.|....... |
|00002ea0| 20 20 20 20 20 73 74 72 | 31 5d 0a 09 09 09 09 09 | str|1]......|
|00002eb0| 20 20 74 6f 50 61 74 68 | 3a 20 5b 4e 53 53 74 72 | toPath|: [NSStr|
|00002ec0| 69 6e 67 20 73 74 72 69 | 6e 67 57 69 74 68 46 6f |ing stri|ngWithFo|
|00002ed0| 72 6d 61 74 3a 20 40 22 | 25 40 2f 25 40 2e 25 40 |rmat: @"|%@/%@.%@|
|00002ee0| 2e 63 61 63 68 65 22 2c | 0a 09 09 09 09 09 09 09 |.cache",|........|
|00002ef0| 20 20 20 20 5b 73 65 6c | 66 20 70 61 74 68 5d 2c | [sel|f path],|
|00002f00| 0a 09 09 09 09 09 09 09 | 20 20 20 20 5b 74 68 65 |........| [the|
|00002f10| 4e 65 77 4e 61 6d 65 20 | 73 75 62 73 74 72 69 6e |NewName |substrin|
|00002f20| 67 54 6f 49 6e 64 65 78 | 3a 0a 09 09 09 09 09 09 |gToIndex|:.......|
|00002f30| 09 09 09 20 20 28 5b 74 | 68 65 4e 65 77 4e 61 6d |... ([t|heNewNam|
|00002f40| 65 20 6c 65 6e 67 74 68 | 5d 20 2d 20 5b 73 74 72 |e length|] - [str|
|00002f50| 32 20 6c 65 6e 67 74 68 | 5d 29 5d 2c 0a 09 09 09 |2 length|])],....|
|00002f60| 09 09 09 09 20 20 20 20 | 73 74 72 32 5d 0a 09 09 |.... |str2]...|
|00002f70| 09 09 09 20 20 68 61 6e | 64 6c 65 72 3a 20 6e 69 |... han|dler: ni|
|00002f80| 6c 5d 3b 0a 09 7d 0a 20 | 20 20 20 7d 0a 20 20 0a |l];..}. | }. .|
|00002f90| 20 20 72 65 74 75 72 6e | 20 61 42 4f 4f 4c 3b 0a | return| aBOOL;.|
|00002fa0| 7d 0a 0a 40 65 6e 64 0a | 0a 0a 2f 2f 0a 2f 2f 20 |}..@end.|..//.// |
|00002fb0| 50 72 69 76 61 74 65 20 | 69 6e 74 65 72 66 61 63 |Private |interfac|
|00002fc0| 65 0a 2f 2f 0a 40 69 6d | 70 6c 65 6d 65 6e 74 61 |e.//.@im|plementa|
|00002fd0| 74 69 6f 6e 20 4c 6f 63 | 61 6c 53 74 6f 72 65 20 |tion Loc|alStore |
|00002fe0| 28 50 72 69 76 61 74 65 | 29 0a 0a 2d 20 28 76 6f |(Private|)..- (vo|
|00002ff0| 69 64 29 20 5f 65 6e 66 | 6f 72 63 65 46 69 6c 65 |id) _enf|orceFile|
|00003000| 41 74 74 72 69 62 75 74 | 65 73 0a 7b 0a 20 20 4e |Attribut|es.{. N|
|00003010| 53 44 69 72 65 63 74 6f | 72 79 45 6e 75 6d 65 72 |SDirecto|ryEnumer|
|00003020| 61 74 6f 72 20 2a 61 44 | 69 63 74 69 6f 6e 61 72 |ator *aD|ictionar|
|00003030| 79 45 6e 75 6d 65 72 61 | 74 6f 72 3b 0a 20 20 4e |yEnumera|tor;. N|
|00003040| 53 41 75 74 6f 72 65 6c | 65 61 73 65 50 6f 6f 6c |SAutorel|easePool|
|00003050| 20 2a 70 6f 6f 6c 3b 0a | 20 20 4e 53 53 74 72 69 | *pool;.| NSStri|
|00003060| 6e 67 20 2a 61 53 74 72 | 69 6e 67 3b 0a 0a 20 20 |ng *aStr|ing;.. |
|00003070| 70 6f 6f 6c 20 3d 20 5b | 5b 4e 53 41 75 74 6f 72 |pool = [|[NSAutor|
|00003080| 65 6c 65 61 73 65 50 6f | 6f 6c 20 61 6c 6c 6f 63 |eleasePo|ol alloc|
|00003090| 5d 20 69 6e 69 74 5d 3b | 0a 0a 20 20 2f 2f 0a 20 |] init];|.. //. |
|000030a0| 20 2f 2f 20 57 65 20 76 | 65 72 69 66 79 20 69 66 | // We v|erify if|
|000030b0| 20 6f 75 72 20 53 74 6f | 72 65 20 70 61 74 68 27 | our Sto|re path'|
|000030c0| 73 20 6d 6f 64 65 20 69 | 73 20 30 37 30 30 0a 20 |s mode i|s 0700. |
|000030d0| 20 2f 2f 0a 20 20 5b 73 | 65 6c 66 20 5f 65 6e 66 | //. [s|elf _enf|
|000030e0| 6f 72 63 65 4d 6f 64 65 | 3a 20 30 37 30 30 0a 09 |orceMode|: 0700..|
|000030f0| 61 74 50 61 74 68 3a 20 | 5b 73 65 6c 66 20 70 61 |atPath: |[self pa|
|00003100| 74 68 5d 5d 3b 0a 20 20 | 0a 20 20 2f 2f 0a 20 20 |th]];. |. //. |
|00003110| 2f 2f 20 57 65 20 65 6e | 73 75 72 65 20 74 68 61 |// We en|sure tha|
|00003120| 74 20 61 6c 6c 20 73 75 | 62 64 69 72 65 63 74 6f |t all su|bdirecto|
|00003130| 72 69 65 73 20 61 72 65 | 20 75 73 69 6e 67 20 6d |ries are| using m|
|00003140| 6f 64 65 20 30 37 30 30 | 20 61 6e 64 20 66 69 6c |ode 0700| and fil|
|00003150| 65 73 20 61 72 65 20 75 | 73 69 6e 67 20 6d 6f 64 |es are u|sing mod|
|00003160| 65 20 30 36 30 30 0a 20 | 20 2f 2f 0a 20 20 61 44 |e 0600. | //. aD|
|00003170| 69 63 74 69 6f 6e 61 72 | 79 45 6e 75 6d 65 72 61 |ictionar|yEnumera|
|00003180| 74 6f 72 20 3d 20 5b 66 | 69 6c 65 4d 61 6e 61 67 |tor = [f|ileManag|
|00003190| 65 72 20 65 6e 75 6d 65 | 72 61 74 6f 72 41 74 50 |er enume|ratorAtP|
|000031a0| 61 74 68 3a 20 5b 73 65 | 6c 66 20 70 61 74 68 5d |ath: [se|lf path]|
|000031b0| 5d 3b 0a 0a 20 20 77 68 | 69 6c 65 20 28 20 28 61 |];.. wh|ile ( (a|
|000031c0| 53 74 72 69 6e 67 20 3d | 20 5b 61 44 69 63 74 69 |String =| [aDicti|
|000031d0| 6f 6e 61 72 79 45 6e 75 | 6d 65 72 61 74 6f 72 20 |onaryEnu|merator |
|000031e0| 6e 65 78 74 4f 62 6a 65 | 63 74 5d 29 20 29 0a 20 |nextObje|ct]) ). |
|000031f0| 20 20 20 7b 0a 20 20 20 | 20 20 20 42 4f 4f 4c 20 | {. | BOOL |
|00003200| 69 73 44 69 72 3b 0a 20 | 20 20 20 20 20 0a 20 20 |isDir;. | . |
|00003210| 20 20 20 20 61 53 74 72 | 69 6e 67 20 3d 20 5b 4e | aStr|ing = [N|
|00003220| 53 53 74 72 69 6e 67 20 | 73 74 72 69 6e 67 57 69 |SString |stringWi|
|00003230| 74 68 46 6f 72 6d 61 74 | 3a 20 40 22 25 40 2f 25 |thFormat|: @"%@/%|
|00003240| 40 22 2c 20 5b 73 65 6c | 66 20 70 61 74 68 5d 2c |@", [sel|f path],|
|00003250| 20 61 53 74 72 69 6e 67 | 5d 3b 0a 20 20 20 20 20 | aString|];. |
|00003260| 20 0a 20 20 20 20 20 20 | 69 66 20 28 20 5b 66 69 | . |if ( [fi|
|00003270| 6c 65 4d 61 6e 61 67 65 | 72 20 66 69 6c 65 45 78 |leManage|r fileEx|
|00003280| 69 73 74 73 41 74 50 61 | 74 68 3a 20 61 53 74 72 |istsAtPa|th: aStr|
|00003290| 69 6e 67 0a 09 09 09 69 | 73 44 69 72 65 63 74 6f |ing....i|sDirecto|
|000032a0| 72 79 3a 20 26 69 73 44 | 69 72 5d 20 29 0a 09 7b |ry: &isD|ir] )..{|
|000032b0| 0a 09 20 20 69 66 20 28 | 20 69 73 44 69 72 20 29 |.. if (| isDir )|
|000032c0| 0a 09 20 20 20 20 7b 0a | 09 20 20 20 20 20 20 5b |.. {.|. [|
|000032d0| 73 65 6c 66 20 5f 65 6e | 66 6f 72 63 65 4d 6f 64 |self _en|forceMod|
|000032e0| 65 3a 20 30 37 30 30 0a | 09 09 20 20 20 20 61 74 |e: 0700.|.. at|
|000032f0| 50 61 74 68 3a 20 61 53 | 74 72 69 6e 67 5d 3b 0a |Path: aS|tring];.|
|00003300| 09 20 20 20 20 7d 0a 09 | 20 20 65 6c 73 65 0a 09 |. }..| else..|
|00003310| 20 20 20 20 7b 0a 09 20 | 20 20 20 20 20 5b 73 65 | {.. | [se|
|00003320| 6c 66 20 5f 65 6e 66 6f | 72 63 65 4d 6f 64 65 3a |lf _enfo|rceMode:|
|00003330| 20 30 36 30 30 0a 09 09 | 20 20 20 20 61 74 50 61 | 0600...| atPa|
|00003340| 74 68 3a 20 61 53 74 72 | 69 6e 67 5d 3b 0a 09 20 |th: aStr|ing];.. |
|00003350| 20 20 20 7d 0a 09 7d 0a | 20 20 20 20 7d 20 0a 20 | }..}.| } . |
|00003360| 0a 20 20 52 45 4c 45 41 | 53 45 28 70 6f 6f 6c 29 |. RELEA|SE(pool)|
|00003370| 3b 0a 7d 0a 0a 0a 2f 2f | 0a 2f 2f 0a 2f 2f 0a 2d |;.}...//|.//.//.-|
|00003380| 20 28 76 6f 69 64 29 20 | 5f 65 6e 66 6f 72 63 65 | (void) |_enforce|
|00003390| 4d 6f 64 65 3a 20 28 75 | 6e 73 69 67 6e 65 64 20 |Mode: (u|nsigned |
|000033a0| 6c 6f 6e 67 29 20 74 68 | 65 4d 6f 64 65 0a 09 20 |long) th|eMode.. |
|000033b0| 20 20 20 20 20 20 61 74 | 50 61 74 68 3a 20 28 4e | at|Path: (N|
|000033c0| 53 53 74 72 69 6e 67 20 | 2a 29 20 74 68 65 50 61 |SString |*) thePa|
|000033d0| 74 68 0a 0a 7b 0a 20 20 | 4e 53 4d 75 74 61 62 6c |th..{. |NSMutabl|
|000033e0| 65 44 69 63 74 69 6f 6e | 61 72 79 20 2a 63 75 72 |eDiction|ary *cur|
|000033f0| 72 65 6e 74 46 69 6c 65 | 41 74 74 72 69 62 75 74 |rentFile|Attribut|
|00003400| 65 73 3b 0a 20 20 0a 20 | 20 75 6e 73 69 67 6e 65 |es;. . | unsigne|
|00003410| 64 20 6c 6f 6e 67 20 63 | 75 72 72 65 6e 74 5f 61 |d long c|urrent_a|
|00003420| 74 74 72 69 62 75 74 65 | 73 2c 20 64 65 73 69 72 |ttribute|s, desir|
|00003430| 65 64 5f 61 74 74 72 69 | 62 75 74 65 73 3b 0a 20 |ed_attri|butes;. |
|00003440| 20 0a 0a 20 20 63 75 72 | 72 65 6e 74 46 69 6c 65 | .. cur|rentFile|
|00003450| 41 74 74 72 69 62 75 74 | 65 73 20 3d 20 5b 5b 4e |Attribut|es = [[N|
|00003460| 53 4d 75 74 61 62 6c 65 | 44 69 63 74 69 6f 6e 61 |SMutable|Dictiona|
|00003470| 72 79 20 61 6c 6c 6f 63 | 5d 20 69 6e 69 74 57 69 |ry alloc|] initWi|
|00003480| 74 68 44 69 63 74 69 6f | 6e 61 72 79 3a 20 5b 66 |thDictio|nary: [f|
|00003490| 69 6c 65 4d 61 6e 61 67 | 65 72 20 66 69 6c 65 41 |ileManag|er fileA|
|000034a0| 74 74 72 69 62 75 74 65 | 73 41 74 50 61 74 68 3a |ttribute|sAtPath:|
|000034b0| 20 5b 73 65 6c 66 20 70 | 61 74 68 5d 0a 09 09 09 | [self p|ath]....|
|000034c0| 09 09 09 09 09 09 09 09 | 74 72 61 76 65 72 73 65 |........|traverse|
|000034d0| 4c 69 6e 6b 3a 20 59 45 | 53 5d 5d 3b 0a 20 20 0a |Link: YE|S]];. .|
|000034e0| 20 20 63 75 72 72 65 6e | 74 5f 61 74 74 72 69 62 | curren|t_attrib|
|000034f0| 75 74 65 73 20 3d 20 5b | 63 75 72 72 65 6e 74 46 |utes = [|currentF|
|00003500| 69 6c 65 41 74 74 72 69 | 62 75 74 65 73 20 66 69 |ileAttri|butes fi|
|00003510| 6c 65 50 6f 73 69 78 50 | 65 72 6d 69 73 73 69 6f |lePosixP|ermissio|
|00003520| 6e 73 5d 3b 0a 20 20 64 | 65 73 69 72 65 64 5f 61 |ns];. d|esired_a|
|00003530| 74 74 72 69 62 75 74 65 | 73 20 3d 20 74 68 65 4d |ttribute|s = theM|
|00003540| 6f 64 65 3b 0a 20 20 0a | 20 20 69 66 20 28 20 63 |ode;. .| if ( c|
|00003550| 75 72 72 65 6e 74 5f 61 | 74 74 72 69 62 75 74 65 |urrent_a|ttribute|
|00003560| 73 20 21 3d 20 64 65 73 | 69 72 65 64 5f 61 74 74 |s != des|ired_att|
|00003570| 72 69 62 75 74 65 73 20 | 29 0a 20 20 20 20 7b 0a |ributes |). {.|
|00003580| 20 20 20 20 20 20 5b 63 | 75 72 72 65 6e 74 46 69 | [c|urrentFi|
|00003590| 6c 65 41 74 74 72 69 62 | 75 74 65 73 20 73 65 74 |leAttrib|utes set|
|000035a0| 4f 62 6a 65 63 74 3a 20 | 5b 4e 53 4e 75 6d 62 65 |Object: |[NSNumbe|
|000035b0| 72 20 6e 75 6d 62 65 72 | 57 69 74 68 55 6e 73 69 |r number|WithUnsi|
|000035c0| 67 6e 65 64 4c 6f 6e 67 | 3a 20 64 65 73 69 72 65 |gnedLong|: desire|
|000035d0| 64 5f 61 74 74 72 69 62 | 75 74 65 73 5d 0a 09 09 |d_attrib|utes]...|
|000035e0| 09 20 20 20 20 20 66 6f | 72 4b 65 79 3a 20 4e 53 |. fo|rKey: NS|
|000035f0| 46 69 6c 65 50 6f 73 69 | 78 50 65 72 6d 69 73 73 |FilePosi|xPermiss|
|00003600| 69 6f 6e 73 5d 3b 0a 20 | 20 20 20 20 20 0a 20 20 |ions];. | . |
|00003610| 20 20 20 20 5b 66 69 6c | 65 4d 61 6e 61 67 65 72 | [fil|eManager|
|00003620| 20 63 68 61 6e 67 65 46 | 69 6c 65 41 74 74 72 69 | changeF|ileAttri|
|00003630| 62 75 74 65 73 3a 20 63 | 75 72 72 65 6e 74 46 69 |butes: c|urrentFi|
|00003640| 6c 65 41 74 74 72 69 62 | 75 74 65 73 0a 09 09 20 |leAttrib|utes... |
|00003650| 20 20 61 74 50 61 74 68 | 3a 20 74 68 65 50 61 74 | atPath|: thePat|
|00003660| 68 5d 3b 0a 20 20 20 20 | 7d 0a 20 20 52 45 4c 45 |h];. |}. RELE|
|00003670| 41 53 45 28 63 75 72 72 | 65 6e 74 46 69 6c 65 41 |ASE(curr|entFileA|
|00003680| 74 74 72 69 62 75 74 65 | 73 29 3b 0a 7d 0a 0a 40 |ttribute|s);.}..@|
|00003690| 65 6e 64 0a 00 00 00 00 | 00 00 00 00 00 00 00 00 |end.....|........|
|000036a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000036b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000036c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000036d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000036e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000036f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003700| 00 00 01 00 00 00 01 00 | 00 00 00 00 00 00 00 1e |........|........|
|00003710| 54 68 69 73 20 72 65 73 | 6f 75 72 63 65 20 66 6f |This res|ource fo|
|00003720| 72 6b 20 69 6e 74 65 6e | 74 69 6f 6e 61 6c 6c 79 |rk inten|tionally|
|00003730| 20 6c 65 66 74 20 62 6c | 61 6e 6b 20 20 20 00 00 | left bl|ank ..|
|00003740| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003750| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003770| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003780| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003790| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003800| 00 00 01 00 00 00 01 00 | 00 00 00 00 00 00 00 1e |........|........|
|00003810| 00 00 00 00 00 00 00 00 | 00 1c 00 1e ff ff 00 00 |........|........|
|00003820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+